신호생성 repo (24. 1. 5 ~).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

840 lines
26 KiB

{
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>inter_no</th>\n",
" <th>node_id</th>\n",
" <th>move_no</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1</td>\n",
" <td>571545870_02</td>\n",
" <td>571542797_02</td>\n",
" <td>grrrgrrGgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>2</td>\n",
" <td>571510153_02</td>\n",
" <td>571545870_01</td>\n",
" <td>grrrgrrrgrrrrrgGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>3</td>\n",
" <td>-571542797_02</td>\n",
" <td>571510153_01</td>\n",
" <td>grrrgrrrgrrrrGgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>4</td>\n",
" <td>-571500487_01</td>\n",
" <td>571542797_02</td>\n",
" <td>gGGrgrrrgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>5</td>\n",
" <td>571510153_02</td>\n",
" <td>571500487_01</td>\n",
" <td>grrrgrrrgrrrrrgrG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>67</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571511538_02.121</td>\n",
" <td>571500535_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>68</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571500535_02.18</td>\n",
" <td>571500585_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>69</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571500585_02</td>\n",
" <td>571542115_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>70</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>-571542115_01</td>\n",
" <td>571511538_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>71</td>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>5</td>\n",
" <td>571500535_02</td>\n",
" <td>-571500535_02</td>\n",
" <td>ggggggggG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>72 rows × 7 columns</p>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>start_unix</th>\n",
" <th>phas_A</th>\n",
" <th>phas_B</th>\n",
" <th>move_A</th>\n",
" <th>move_B</th>\n",
" <th>duration</th>\n",
" <th>node_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>176</td>\n",
" <td>1704418870</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>37</td>\n",
" <td>i1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>176</td>\n",
" <td>1704418870</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>103</td>\n",
" <td>i1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>176</td>\n",
" <td>1704418870</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>18</td>\n",
" <td>40</td>\n",
" <td>i1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>176</td>\n",
" <td>1704419051</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>37</td>\n",
" <td>i1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>176</td>\n",
" <td>1704419051</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>103</td>\n",
" <td>i1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>245</th>\n",
" <td>210</td>\n",
" <td>1704419810</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>18</td>\n",
" <td>28</td>\n",
" <td>i6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>246</th>\n",
" <td>210</td>\n",
" <td>1704419810</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>15</td>\n",
" <td>i6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247</th>\n",
" <td>210</td>\n",
" <td>1704419810</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>43</td>\n",
" <td>i6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>248</th>\n",
" <td>210</td>\n",
" <td>1704419810</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>70</td>\n",
" <td>i6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>249</th>\n",
" <td>210</td>\n",
" <td>1704419810</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>24</td>\n",
" <td>i6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>192 rows × 8 columns</p>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>inter_no</th>\n",
" <th>node_id</th>\n",
" <th>move_no</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1</td>\n",
" <td>571545870_02</td>\n",
" <td>571542797_02</td>\n",
" <td>grrrgrrGgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>2</td>\n",
" <td>571510153_02</td>\n",
" <td>571545870_01</td>\n",
" <td>grrrgrrrgrrrrrgGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>3</td>\n",
" <td>-571542797_02</td>\n",
" <td>571510153_01</td>\n",
" <td>grrrgrrrgrrrrGgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>4</td>\n",
" <td>-571500487_01</td>\n",
" <td>571542797_02</td>\n",
" <td>gGGrgrrrgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>5</td>\n",
" <td>571510153_02</td>\n",
" <td>571500487_01</td>\n",
" <td>grrrgrrrgrrrrrgrG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>67</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571511538_02.121</td>\n",
" <td>571500535_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>68</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571500535_02.18</td>\n",
" <td>571500585_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>69</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>571500585_02</td>\n",
" <td>571542115_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>70</td>\n",
" <td>210</td>\n",
" <td>i6</td>\n",
" <td>21</td>\n",
" <td>-571542115_01</td>\n",
" <td>571511538_01</td>\n",
" <td>grrrgrrrrgrrgrrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>71</td>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>5</td>\n",
" <td>571500535_02</td>\n",
" <td>-571500535_02</td>\n",
" <td>ggggggggG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>72 rows × 7 columns</p>\n",
"</div>"
],
"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
}