{
"cells": [
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1. 데이터를 로드합니다.\n",
"1-1. 네트워크가 로드되었습니다.\n",
"1-2. 테이블들이 로드되었습니다.\n",
"1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
"1-4. 테이블들의 무결성 검사를 완료했습니다.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:12<00:00, 1341.11it/s]\n"
]
}
],
"source": [
"import os\n",
"import json\n",
"import pandas as pd\n",
"import numpy as np\n",
"import sys\n",
"import copy\n",
"from datetime import datetime\n",
"sys.path.append('../../Scripts')\n",
"\n",
"from preprocess_daily import DailyPreprocessor\n",
"# from generate_signals import SignalGenerator\n",
"self = DailyPreprocessor()\n",
"# sg = SignalGenerator()\n",
"\n",
"self.load_data()\n",
"self.make_match1()\n",
"self.make_match2()\n",
"self.make_match3()\n",
"self.make_match4()\n",
"self.make_match5()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"self.make_match6()\n",
"self.make_matching()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['c30', 'u00', 'u20', 'u30', 'u31', 'u32', 'u60']"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.child_ids"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"# initialize_state\n",
"'''\n",
"비보호우회전신호 (g) 배정\n",
"\n",
"input :\n",
"(1) net : 네트워크\n",
"(2) nodes : 노드 목록\n",
"(3) histids : 모든 교차로에 대한 시작유닉스 (시작유닉스, A현시, B현시)별 현시시간, 진입·진출엣지\n",
"\n",
"output : node2init\n",
"- 각 노드를 초기화된 신호로 맵핑하는 딕셔너리\n",
"- 초기화된 신호란, 우회전을 g로 나머지는 r로 지정한 신호를 말함.\n",
"'''\n",
"self.nodes = [self.net.getNode(node_id) for node_id in self.node_ids]\n",
"self.node2init = {}\n",
"# 모든 노드들을 순회\n",
"for node in self.nodes:\n",
" node_id = node.getID()\n",
" # 모든 connection\n",
" conns = [(c.getJunctionIndex(), c) for c in node.getConnections()]\n",
" conns = [c for c in conns if c[0] >= 0]\n",
" conns = sorted(conns, key=lambda x: x[0])\n",
" state = []\n",
" # i번째 connection : ci\n",
" for i, ci in conns:\n",
" if ci.getTLLinkIndex() < 0:\n",
" continue\n",
" are_foes = False\n",
" # j번째 connection : cj\n",
" # 합류지점이 다르면서 상충되는 cj가 존재하면 are_foes = True (r)\n",
" # 그외의 경우에는 are_foes = False (g)\n",
" for j, cj in conns:\n",
" # ci, cj의 합류지점이 같으면 통과\n",
" if ci.getTo() == cj.getTo():\n",
" continue\n",
" # ci, cj가 상충되면 are_foes를 True로 지정.\n",
" if node.areFoes(i, j):\n",
" are_foes = True\n",
" break\n",
" state.append('r' if are_foes else 'g')\n",
" self.node2init[node_id] = state\n",
"\n",
"# 어떤 연결과도 상충이 일어나지는 않지만, 신호가 부여되어 있는 경우에는 r을 부여\n",
"for _, row in self.matching.iterrows():\n",
" node_id = row.node_id\n",
" move_no = row.move_no\n",
" inc_edge = row.inc_edge\n",
" out_edge = row.out_edge\n",
" if move_no != 21:\n",
" inc_edge = self.net.getEdge(inc_edge)\n",
" out_edge = self.net.getEdge(out_edge)\n",
" for conn in inc_edge.getConnections(out_edge):\n",
" index = conn.getTLLinkIndex()\n",
" if index >= 0:\n",
" self.node2init[node_id][index] = 'r'"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'rrgrrrr'"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"''.join(self.node2init['i2'])"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"old_match6 = self.match6\n",
"old_matching = self.matching"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"# assign_signals\n",
"self.match6 = old_match6.copy()\n",
"self.matching = old_matching.copy()\n",
"\n",
"# assign signals on matching\n",
"self.matching['init_state'] = self.matching['node_id'].map(self.node2init)\n",
"self.matching['state'] = self.matching['init_state'].map(lambda x:''.join(x))\n",
"# matching의 각 행을 순회\n",
"for row in self.matching.itertuples(index=True):\n",
" node_id = row.node_id\n",
" move_no = row.move_no\n",
" inc_edge = row.inc_edge\n",
" out_edge = row.out_edge\n",
" state = copy.deepcopy(self.node2init)[node_id]\n",
"\n",
" if move_no != 21:\n",
" inc_edge = self.net.getEdge(inc_edge)\n",
" out_edge = self.net.getEdge(out_edge)\n",
" for conn in inc_edge.getConnections(out_edge):\n",
" index = conn.getTLLinkIndex()\n",
" if index >= 0:\n",
" state[index] = 'G'\n",
" self.matching.at[row.Index, 'state'] = ''.join(state)\n",
"\n",
"self.matching = self.matching.dropna(subset='state')\n",
"self.matching = self.matching.reset_index(drop=True)\n",
"self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'state']]\n",
"\n",
"# assign signals on match6\n",
"\n",
"self.match6 = self.match6.reset_index(drop=True)\n",
"self.match6['init_state'] = self.match6['node_id'].map(self.node2init)\n",
"self.match6['state'] = self.match6['init_state'].map(lambda x:''.join(x))\n",
"\n",
"# match6의 각 행을 순회\n",
"for i, row in self.match6.iterrows():\n",
" node_id = row.node_id\n",
" move_no = row.move_no\n",
" inc_edge = row.inc_edge\n",
" out_edge = row.out_edge\n",
" state = copy.deepcopy(self.node2init)[node_id]\n",
" if (pd.isna(inc_edge)) or (pd.isna(out_edge)):\n",
" continue\n",
" if (move_no != 21):\n",
" # print(i, node_id, move_no, ''.join(state))\n",
" inc_edge = self.net.getEdge(inc_edge)\n",
" out_edge = self.net.getEdge(out_edge)\n",
" for conn in inc_edge.getConnections(out_edge):\n",
" index = conn.getTLLinkIndex()\n",
" if index >= 0:\n",
" state[index] = 'G'\n",
" # print(i, node_id, move_no, index, ''.join(state))\n",
" self.match6.at[i, 'state'] = ''.join(state)\n",
"\n",
"self.match6 = self.match6.dropna(subset='state')\n",
"self.match6 = self.match6.reset_index(drop=True)\n",
"self.match6 = self.match6[['inter_no', 'node_id', 'phase_no', 'ring_type', 'move_no', 'state']]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" node_id | \n",
" move_no | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" i0 | \n",
" 1 | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" i0 | \n",
" 2 | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" i0 | \n",
" 3 | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" i0 | \n",
" 4 | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" i0 | \n",
" 5 | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 70 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 71 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 72 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 73 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 74 | \n",
" 210 | \n",
" u60 | \n",
" 19 | \n",
" ggggggggG | \n",
"
\n",
" \n",
"
\n",
"
75 rows × 4 columns
\n",
"
"
],
"text/plain": [
" inter_no node_id move_no state\n",
"0 175 i0 1 grrrgrrGgrrrrrgrr\n",
"1 175 i0 2 grrrgrrrgrrrrrgGr\n",
"2 175 i0 3 grrrgrrrgrrrrGgrr\n",
"3 175 i0 4 gGGrgrrrgrrrrrgrr\n",
"4 175 i0 5 grrrgrrrgrrrrrgrG\n",
".. ... ... ... ...\n",
"70 210 i6 21 grrrgrrrrgrrgrrr\n",
"71 210 i6 21 grrrgrrrrgrrgrrr\n",
"72 210 i6 21 grrrgrrrrgrrgrrr\n",
"73 210 i6 21 grrrgrrrrgrrgrrr\n",
"74 210 u60 19 ggggggggG\n",
"\n",
"[75 rows x 4 columns]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.matching"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"self.match6.to_csv('match6.csv',index=False)\n",
"self.matching.to_csv('matching.csv',index=False)\n",
"with open('node2init.json', 'w') as file:\n",
" json.dump(self.node2init, file)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1. 데이터를 준비합니다.\n",
"1-1. 네트워크가 로드되었습니다.\n",
"1-2. 테이블들이 로드되었습니다.\n",
"2. 신호이력 테이블을 변환합니다.\n",
"3. 이동류정보 테이블을 변환합니다.\n"
]
}
],
"source": [
"import numpy as np\n",
"import json\n",
"from generate_signals import SignalGenerator\n",
"self = SignalGenerator()\n",
"self.prepare_data() # 1\n",
"self.process_history() # 2\n",
"self.process_movement() # 3\n",
"\n",
"self.match6 = pd.read_csv('match6.csv')\n",
"self.matching = pd.read_csv('matching.csv')\n",
"with open('node2init.json', 'r') as file:\n",
" self.node2init = json.load(file)\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" node_id | \n",
" move_no | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" i0 | \n",
" 1 | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" i0 | \n",
" 2 | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" i0 | \n",
" 3 | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" i0 | \n",
" 4 | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" i0 | \n",
" 5 | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 70 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 71 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 72 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 73 | \n",
" 210 | \n",
" i6 | \n",
" 21 | \n",
" grrrgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 74 | \n",
" 210 | \n",
" u60 | \n",
" 19 | \n",
" ggggggggG | \n",
"
\n",
" \n",
"
\n",
"
75 rows × 4 columns
\n",
"
"
],
"text/plain": [
" inter_no node_id move_no state\n",
"0 175 i0 1 grrrgrrGgrrrrrgrr\n",
"1 175 i0 2 grrrgrrrgrrrrrgGr\n",
"2 175 i0 3 grrrgrrrgrrrrGgrr\n",
"3 175 i0 4 gGGrgrrrgrrrrrgrr\n",
"4 175 i0 5 grrrgrrrgrrrrrgrG\n",
".. ... ... ... ...\n",
"70 210 i6 21 grrrgrrrrgrrgrrr\n",
"71 210 i6 21 grrrgrrrrgrrgrrr\n",
"72 210 i6 21 grrrgrrrrgrrgrrr\n",
"73 210 i6 21 grrrgrrrrgrrgrrr\n",
"74 210 u60 19 ggggggggG\n",
"\n",
"[75 rows x 4 columns]"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.matching"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 175 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
"
\n",
" \n",
" 1 | \n",
" 175 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
"
\n",
" \n",
" 2 | \n",
" 175 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
"
\n",
" \n",
" 3 | \n",
" 175 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
"
\n",
" \n",
" 4 | \n",
" 175 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no start_unix phas_A phas_B move_A move_B duration\n",
"0 175 1704416178 1 1 8 4 54\n",
"1 175 1704416178 2 2 7 3 57\n",
"2 175 1704416178 3 3 6 1 42\n",
"3 175 1704416178 3 4 6 2 28\n",
"4 175 1704416178 4 4 5 2 47"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# movedur : movements and durations\n",
"self.movedur = pd.merge(self.hrhists, self.movement_updated, how='inner', on=['inter_no', 'start_unix', 'phas_A', 'phas_B'])\n",
"self.movedur = self.movedur[['inter_no', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration']]\n",
"display(self.movedur.head())"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" node_id | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 10 | \n",
" 175 | \n",
" 1704416540 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" i0 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 11 | \n",
" 175 | \n",
" 1704416540 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 46 | \n",
" i0 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 12 | \n",
" 175 | \n",
" 1704416540 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" i0 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 13 | \n",
" 175 | \n",
" 1704416540 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 23 | \n",
" i0 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 14 | \n",
" 175 | \n",
" 1704416540 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" i0 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 255 | \n",
" 201 | \n",
" 1704417410 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 3 | \n",
" 33 | \n",
" i8 | \n",
" grrrrrrrgGGGgrrr | \n",
"
\n",
" \n",
" 256 | \n",
" 201 | \n",
" 1704417410 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 36 | \n",
" i8 | \n",
" grrrrrrrgrrrgGGG | \n",
"
\n",
" \n",
" 257 | \n",
" 201 | \n",
" 1704417410 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 2 | \n",
" 25 | \n",
" i8 | \n",
" grrrGGGrgrrrgGGr | \n",
"
\n",
" \n",
" 258 | \n",
" 201 | \n",
" 1704417410 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 58 | \n",
" i8 | \n",
" grrrGGGGgrrrgrrr | \n",
"
\n",
" \n",
" 259 | \n",
" 201 | \n",
" 1704417410 | \n",
" 5 | \n",
" 5 | \n",
" 7 | \n",
" 4 | \n",
" 18 | \n",
" i8 | \n",
" gGGGrrrrgrrrgrrr | \n",
"
\n",
" \n",
"
\n",
"
203 rows × 9 columns
\n",
"
"
],
"text/plain": [
" inter_no start_unix phas_A phas_B move_A move_B duration node_id \\\n",
"10 175 1704416540 1 1 8 4 43 i0 \n",
"11 175 1704416540 2 2 7 3 46 i0 \n",
"12 175 1704416540 3 3 6 1 33 i0 \n",
"13 175 1704416540 3 4 6 2 23 i0 \n",
"14 175 1704416540 4 4 5 2 37 i0 \n",
".. ... ... ... ... ... ... ... ... \n",
"255 201 1704417410 1 1 8 3 33 i8 \n",
"256 201 1704417410 2 2 5 2 36 i8 \n",
"257 201 1704417410 3 3 6 2 25 i8 \n",
"258 201 1704417410 4 4 6 1 58 i8 \n",
"259 201 1704417410 5 5 7 4 18 i8 \n",
"\n",
" state \n",
"10 gGGrgrrrgGGGGrgrr \n",
"11 grrGgrrrgrrrrGgrr \n",
"12 grrrgGGGgrrrrrgrr \n",
"13 grrrgGGrgrrrrrgGr \n",
"14 grrrgrrrgrrrrrgGG \n",
".. ... \n",
"255 grrrrrrrgGGGgrrr \n",
"256 grrrrrrrgrrrgGGG \n",
"257 grrrGGGrgrrrgGGr \n",
"258 grrrGGGGgrrrgrrr \n",
"259 gGGGrrrrgrrrgrrr \n",
"\n",
"[203 rows x 9 columns]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# histid\n",
"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",
"mapping_dict = self.matching.set_index(['node_id', 'move_no'])['state'].to_dict()\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\n",
"\n",
" # 통합된 state 지정\n",
" state = ''\n",
" for a, b in zip(state_A,state_B):\n",
" if a == b:\n",
" state += a\n",
" elif (a == 'G') or (b == 'G'):\n",
" state += 'G'\n",
" self.histid.at[i, 'state'] = state\n",
"display(self.histid)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 202 | \n",
" i9 | \n",
" 1704416410 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 2 | \n",
" 46 | \n",
" GGGG | \n",
"
\n",
" \n",
" 1 | \n",
" 202 | \n",
" i9 | \n",
" 1704416410 | \n",
" 2 | \n",
" 2 | \n",
" 17 | \n",
" 18 | \n",
" 114 | \n",
" rrrr | \n",
"
\n",
" \n",
" 2 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 18 | \n",
" 28 | \n",
" grrrgGGGrgrrgrrr | \n",
"
\n",
" \n",
" 3 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 1 | \n",
" 2 | \n",
" 6 | \n",
" 2 | \n",
" 15 | \n",
" grrrgGGGrgrrgGGr | \n",
"
\n",
" \n",
" 4 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" grrrgrrrrgrrgGGG | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 383 | \n",
" 210 | \n",
" u60 | \n",
" 1704417420 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 18 | \n",
" 16 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 384 | \n",
" 210 | \n",
" u60 | \n",
" 1704417420 | \n",
" 1 | \n",
" 2 | \n",
" 6 | \n",
" 2 | \n",
" 8 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 385 | \n",
" 210 | \n",
" u60 | \n",
" 1704417420 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 24 | \n",
" ggggggggG | \n",
"
\n",
" \n",
" 386 | \n",
" 210 | \n",
" u60 | \n",
" 1704417420 | \n",
" 3 | \n",
" 3 | \n",
" 7 | \n",
" 4 | \n",
" 39 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 387 | \n",
" 210 | \n",
" u60 | \n",
" 1704417420 | \n",
" 4 | \n",
" 4 | \n",
" 8 | \n",
" 3 | \n",
" 13 | \n",
" ggggggggr | \n",
"
\n",
" \n",
"
\n",
"
388 rows × 9 columns
\n",
"
"
],
"text/plain": [
" inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
"0 202 i9 1704416410 1 1 6 2 46 \n",
"1 202 i9 1704416410 2 2 17 18 114 \n",
"2 210 i6 1704416420 1 1 6 18 28 \n",
"3 210 i6 1704416420 1 2 6 2 15 \n",
"4 210 i6 1704416420 2 2 5 2 43 \n",
".. ... ... ... ... ... ... ... ... \n",
"383 210 u60 1704417420 1 1 6 18 16 \n",
"384 210 u60 1704417420 1 2 6 2 8 \n",
"385 210 u60 1704417420 2 2 5 2 24 \n",
"386 210 u60 1704417420 3 3 7 4 39 \n",
"387 210 u60 1704417420 4 4 8 3 13 \n",
"\n",
" state \n",
"0 GGGG \n",
"1 rrrr \n",
"2 grrrgGGGrgrrgrrr \n",
"3 grrrgGGGrgrrgGGr \n",
"4 grrrgrrrrgrrgGGG \n",
".. ... \n",
"383 ggggggggr \n",
"384 ggggggggr \n",
"385 ggggggggG \n",
"386 ggggggggr \n",
"387 ggggggggr \n",
"\n",
"[388 rows x 9 columns]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"new_histids = []\n",
"for parent_id in self.parent_ids:\n",
" for child_id in self.pa2ch[parent_id]:\n",
" new_histid = self.histid.copy()[self.histid.node_id==parent_id].drop(columns='state')\n",
" # new_histid[['inc_edge_A', 'out_edge_A', 'inc_edge_B', 'out_edge_B']] = np.nan\n",
" for i, row in new_histid.iterrows():\n",
" phas_A = row.phas_A\n",
" phas_B = row.phas_B\n",
" new_match = self.match6[self.match6.node_id==child_id]\n",
" Arow = new_match[(new_match.phase_no==phas_A) & (new_match.ring_type=='A')]\n",
"\n",
" # A링의 state 지정\n",
" state_A = Arow.iloc[0].state\n",
" # new_histid.at[i, 'state_A'] = state_A\n",
"\n",
" # B링의 state 지정\n",
" Brow = new_match[(new_match.phase_no==phas_B) & (new_match.ring_type=='B')]\n",
" state_B = Brow.iloc[0].state\n",
" # new_histid.at[i, 'state_B'] = state_B\n",
"\n",
" # 통합된 state 지정\n",
" state = ''\n",
" for a, b in zip(state_A,state_B):\n",
" if a == b:\n",
" state += a\n",
" elif (a == 'G') or (b == 'G'):\n",
" state += 'G'\n",
" new_histid.at[i, 'state'] = state\n",
" new_histid.at[i, 'node_id'] = child_id\n",
" new_histids.append(new_histid)\n",
"new_histids = pd.concat(new_histids)\n",
"self.histids = pd.concat([self.histid.copy(), new_histids])\n",
"self.histids = self.histids.sort_values(by=['start_unix', 'node_id', 'phas_A', 'phas_B']).reset_index(drop=True)\n",
"self.histids = self.histids[['inter_no', 'node_id', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration', 'state']]\n",
"self.histids"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 202 | \n",
" i9 | \n",
" 1704416410 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 2 | \n",
" 46 | \n",
" GGGG | \n",
"
\n",
" \n",
" 1 | \n",
" 202 | \n",
" i9 | \n",
" 1704416410 | \n",
" 2 | \n",
" 2 | \n",
" 17 | \n",
" 18 | \n",
" 114 | \n",
" rrrr | \n",
"
\n",
" \n",
" 2 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 18 | \n",
" 28 | \n",
" grrrgGGGrgrrgrrr | \n",
"
\n",
" \n",
" 3 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 1 | \n",
" 2 | \n",
" 6 | \n",
" 2 | \n",
" 15 | \n",
" grrrgGGGrgrrgGGr | \n",
"
\n",
" \n",
" 4 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" grrrgrrrrgrrgGGG | \n",
"
\n",
" \n",
" 5 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 3 | \n",
" 3 | \n",
" 7 | \n",
" 4 | \n",
" 70 | \n",
" gGGGgrrrrgrrgrrr | \n",
"
\n",
" \n",
" 6 | \n",
" 210 | \n",
" i6 | \n",
" 1704416420 | \n",
" 4 | \n",
" 4 | \n",
" 8 | \n",
" 3 | \n",
" 24 | \n",
" grrrgrrrrgGGgrrr | \n",
"
\n",
" \n",
" 7 | \n",
" 210 | \n",
" u60 | \n",
" 1704416420 | \n",
" 1 | \n",
" 1 | \n",
" 6 | \n",
" 18 | \n",
" 28 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 8 | \n",
" 210 | \n",
" u60 | \n",
" 1704416420 | \n",
" 1 | \n",
" 2 | \n",
" 6 | \n",
" 2 | \n",
" 15 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 9 | \n",
" 210 | \n",
" u60 | \n",
" 1704416420 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" ggggggggG | \n",
"
\n",
" \n",
" 10 | \n",
" 210 | \n",
" u60 | \n",
" 1704416420 | \n",
" 3 | \n",
" 3 | \n",
" 7 | \n",
" 4 | \n",
" 70 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 11 | \n",
" 210 | \n",
" u60 | \n",
" 1704416420 | \n",
" 4 | \n",
" 4 | \n",
" 8 | \n",
" 3 | \n",
" 24 | \n",
" ggggggggr | \n",
"
\n",
" \n",
" 12 | \n",
" 206 | \n",
" i7 | \n",
" 1704416459 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 45 | \n",
" GGrggGG | \n",
"
\n",
" \n",
" 13 | \n",
" 206 | \n",
" i7 | \n",
" 1704416459 | \n",
" 2 | \n",
" 2 | \n",
" 17 | \n",
" 18 | \n",
" 53 | \n",
" rrrggrr | \n",
"
\n",
" \n",
" 14 | \n",
" 206 | \n",
" i7 | \n",
" 1704416459 | \n",
" 3 | \n",
" 3 | \n",
" 8 | \n",
" 4 | \n",
" 26 | \n",
" GGrggGG | \n",
"
\n",
" \n",
" 15 | \n",
" 206 | \n",
" i7 | \n",
" 1704416459 | \n",
" 4 | \n",
" 4 | \n",
" 17 | \n",
" 18 | \n",
" 26 | \n",
" rrrggrr | \n",
"
\n",
" \n",
" 16 | \n",
" 178 | \n",
" c30 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 38 | \n",
" gggggg | \n",
"
\n",
" \n",
" 17 | \n",
" 178 | \n",
" c30 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 39 | \n",
" GGGGGG | \n",
"
\n",
" \n",
" 18 | \n",
" 178 | \n",
" c30 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" GGGGGG | \n",
"
\n",
" \n",
" 19 | \n",
" 178 | \n",
" c30 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 22 | \n",
" GGGGGG | \n",
"
\n",
" \n",
" 20 | \n",
" 177 | \n",
" i2 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" GGgrGGG | \n",
"
\n",
" \n",
" 21 | \n",
" 177 | \n",
" i2 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 27 | \n",
" rrgrrrr | \n",
"
\n",
" \n",
" 22 | \n",
" 177 | \n",
" i2 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 17 | \n",
" 18 | \n",
" 70 | \n",
" rrgrrrr | \n",
"
\n",
" \n",
" 23 | \n",
" 177 | \n",
" i2 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 40 | \n",
" rrgrGGG | \n",
"
\n",
" \n",
" 24 | \n",
" 178 | \n",
" i3 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 38 | \n",
" gGGGrgrrrrgGGGrgrrrr | \n",
"
\n",
" \n",
" 25 | \n",
" 178 | \n",
" i3 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 39 | \n",
" grrrGgrrrrgrrrGgrrrr | \n",
"
\n",
" \n",
" 26 | \n",
" 178 | \n",
" i3 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" grrrrgrrrrgrrrrgGGGG | \n",
"
\n",
" \n",
" 27 | \n",
" 178 | \n",
" i3 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 22 | \n",
" grrrrgGGGGgrrrrgrrrr | \n",
"
\n",
" \n",
" 28 | \n",
" 177 | \n",
" u20 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gggggg | \n",
"
\n",
" \n",
" 29 | \n",
" 177 | \n",
" u20 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 27 | \n",
" gggggg | \n",
"
\n",
" \n",
" 30 | \n",
" 177 | \n",
" u20 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 17 | \n",
" 18 | \n",
" 70 | \n",
" ggGggg | \n",
"
\n",
" \n",
" 31 | \n",
" 177 | \n",
" u20 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 40 | \n",
" gggggg | \n",
"
\n",
" \n",
" 32 | \n",
" 178 | \n",
" u30 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 38 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 33 | \n",
" 178 | \n",
" u30 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 39 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 34 | \n",
" 178 | \n",
" u30 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 35 | \n",
" 178 | \n",
" u30 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 22 | \n",
" ggggGggg | \n",
"
\n",
" \n",
" 36 | \n",
" 178 | \n",
" u31 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 38 | \n",
" ggggGggg | \n",
"
\n",
" \n",
" 37 | \n",
" 178 | \n",
" u31 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 39 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 38 | \n",
" 178 | \n",
" u31 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 39 | \n",
" 178 | \n",
" u31 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 22 | \n",
" ggggrggg | \n",
"
\n",
" \n",
" 40 | \n",
" 178 | \n",
" u32 | \n",
" 1704416520 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 38 | \n",
" gggggggG | \n",
"
\n",
" \n",
" 41 | \n",
" 178 | \n",
" u32 | \n",
" 1704416520 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 39 | \n",
" gggggggr | \n",
"
\n",
" \n",
" 42 | \n",
" 178 | \n",
" u32 | \n",
" 1704416520 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 43 | \n",
" gggggggr | \n",
"
\n",
" \n",
" 43 | \n",
" 178 | \n",
" u32 | \n",
" 1704416520 | \n",
" 4 | \n",
" 4 | \n",
" 6 | \n",
" 1 | \n",
" 22 | \n",
" gggggggr | \n",
"
\n",
" \n",
" 44 | \n",
" 175 | \n",
" i0 | \n",
" 1704416540 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 45 | \n",
" 175 | \n",
" i0 | \n",
" 1704416540 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 46 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 46 | \n",
" 175 | \n",
" i0 | \n",
" 1704416540 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 47 | \n",
" 175 | \n",
" i0 | \n",
" 1704416540 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 23 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 48 | \n",
" 175 | \n",
" i0 | \n",
" 1704416540 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 49 | \n",
" 176 | \n",
" i1 | \n",
" 1704416540 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 37 | \n",
" gGGGGGrgrr | \n",
"
\n",
" \n",
" 50 | \n",
" 176 | \n",
" i1 | \n",
" 1704416540 | \n",
" 2 | \n",
" 2 | \n",
" 8 | \n",
" 3 | \n",
" 103 | \n",
" grrGGGGgrr | \n",
"
\n",
" \n",
" 51 | \n",
" 176 | \n",
" i1 | \n",
" 1704416540 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 18 | \n",
" 40 | \n",
" grrrrrrgGG | \n",
"
\n",
" \n",
" 52 | \n",
" 175 | \n",
" u00 | \n",
" 1704416540 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" ggggrgggg | \n",
"
\n",
" \n",
" 53 | \n",
" 175 | \n",
" u00 | \n",
" 1704416540 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 46 | \n",
" ggggGgggg | \n",
"
\n",
" \n",
" 54 | \n",
" 175 | \n",
" u00 | \n",
" 1704416540 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" ggggrgggg | \n",
"
\n",
" \n",
" 55 | \n",
" 175 | \n",
" u00 | \n",
" 1704416540 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 23 | \n",
" ggggrgggg | \n",
"
\n",
" \n",
" 56 | \n",
" 175 | \n",
" u00 | \n",
" 1704416540 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" ggggrgggg | \n",
"
\n",
" \n",
" 57 | \n",
" 201 | \n",
" i8 | \n",
" 1704416560 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 3 | \n",
" 33 | \n",
" grrrrrrrgGGGgrrr | \n",
"
\n",
" \n",
" 58 | \n",
" 201 | \n",
" i8 | \n",
" 1704416560 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 36 | \n",
" grrrrrrrgrrrgGGG | \n",
"
\n",
" \n",
" 59 | \n",
" 201 | \n",
" i8 | \n",
" 1704416560 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 2 | \n",
" 25 | \n",
" grrrGGGrgrrrgGGr | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
"0 202 i9 1704416410 1 1 6 2 46 \n",
"1 202 i9 1704416410 2 2 17 18 114 \n",
"2 210 i6 1704416420 1 1 6 18 28 \n",
"3 210 i6 1704416420 1 2 6 2 15 \n",
"4 210 i6 1704416420 2 2 5 2 43 \n",
"5 210 i6 1704416420 3 3 7 4 70 \n",
"6 210 i6 1704416420 4 4 8 3 24 \n",
"7 210 u60 1704416420 1 1 6 18 28 \n",
"8 210 u60 1704416420 1 2 6 2 15 \n",
"9 210 u60 1704416420 2 2 5 2 43 \n",
"10 210 u60 1704416420 3 3 7 4 70 \n",
"11 210 u60 1704416420 4 4 8 3 24 \n",
"12 206 i7 1704416459 1 1 8 4 45 \n",
"13 206 i7 1704416459 2 2 17 18 53 \n",
"14 206 i7 1704416459 3 3 8 4 26 \n",
"15 206 i7 1704416459 4 4 17 18 26 \n",
"16 178 c30 1704416520 1 1 8 4 38 \n",
"17 178 c30 1704416520 2 2 7 3 39 \n",
"18 178 c30 1704416520 3 3 5 2 43 \n",
"19 178 c30 1704416520 4 4 6 1 22 \n",
"20 177 i2 1704416520 1 1 8 4 43 \n",
"21 177 i2 1704416520 2 2 7 3 27 \n",
"22 177 i2 1704416520 3 3 17 18 70 \n",
"23 177 i2 1704416520 4 4 5 1 40 \n",
"24 178 i3 1704416520 1 1 8 4 38 \n",
"25 178 i3 1704416520 2 2 7 3 39 \n",
"26 178 i3 1704416520 3 3 5 2 43 \n",
"27 178 i3 1704416520 4 4 6 1 22 \n",
"28 177 u20 1704416520 1 1 8 4 43 \n",
"29 177 u20 1704416520 2 2 7 3 27 \n",
"30 177 u20 1704416520 3 3 17 18 70 \n",
"31 177 u20 1704416520 4 4 5 1 40 \n",
"32 178 u30 1704416520 1 1 8 4 38 \n",
"33 178 u30 1704416520 2 2 7 3 39 \n",
"34 178 u30 1704416520 3 3 5 2 43 \n",
"35 178 u30 1704416520 4 4 6 1 22 \n",
"36 178 u31 1704416520 1 1 8 4 38 \n",
"37 178 u31 1704416520 2 2 7 3 39 \n",
"38 178 u31 1704416520 3 3 5 2 43 \n",
"39 178 u31 1704416520 4 4 6 1 22 \n",
"40 178 u32 1704416520 1 1 8 4 38 \n",
"41 178 u32 1704416520 2 2 7 3 39 \n",
"42 178 u32 1704416520 3 3 5 2 43 \n",
"43 178 u32 1704416520 4 4 6 1 22 \n",
"44 175 i0 1704416540 1 1 8 4 43 \n",
"45 175 i0 1704416540 2 2 7 3 46 \n",
"46 175 i0 1704416540 3 3 6 1 33 \n",
"47 175 i0 1704416540 3 4 6 2 23 \n",
"48 175 i0 1704416540 4 4 5 2 37 \n",
"49 176 i1 1704416540 1 1 8 4 37 \n",
"50 176 i1 1704416540 2 2 8 3 103 \n",
"51 176 i1 1704416540 3 3 5 18 40 \n",
"52 175 u00 1704416540 1 1 8 4 43 \n",
"53 175 u00 1704416540 2 2 7 3 46 \n",
"54 175 u00 1704416540 3 3 6 1 33 \n",
"55 175 u00 1704416540 3 4 6 2 23 \n",
"56 175 u00 1704416540 4 4 5 2 37 \n",
"57 201 i8 1704416560 1 1 8 3 33 \n",
"58 201 i8 1704416560 2 2 5 2 36 \n",
"59 201 i8 1704416560 3 3 6 2 25 \n",
"\n",
" state \n",
"0 GGGG \n",
"1 rrrr \n",
"2 grrrgGGGrgrrgrrr \n",
"3 grrrgGGGrgrrgGGr \n",
"4 grrrgrrrrgrrgGGG \n",
"5 gGGGgrrrrgrrgrrr \n",
"6 grrrgrrrrgGGgrrr \n",
"7 ggggggggr \n",
"8 ggggggggr \n",
"9 ggggggggG \n",
"10 ggggggggr \n",
"11 ggggggggr \n",
"12 GGrggGG \n",
"13 rrrggrr \n",
"14 GGrggGG \n",
"15 rrrggrr \n",
"16 gggggg \n",
"17 GGGGGG \n",
"18 GGGGGG \n",
"19 GGGGGG \n",
"20 GGgrGGG \n",
"21 rrgrrrr \n",
"22 rrgrrrr \n",
"23 rrgrGGG \n",
"24 gGGGrgrrrrgGGGrgrrrr \n",
"25 grrrGgrrrrgrrrGgrrrr \n",
"26 grrrrgrrrrgrrrrgGGGG \n",
"27 grrrrgGGGGgrrrrgrrrr \n",
"28 gggggg \n",
"29 gggggg \n",
"30 ggGggg \n",
"31 gggggg \n",
"32 ggggrggg \n",
"33 ggggrggg \n",
"34 ggggrggg \n",
"35 ggggGggg \n",
"36 ggggGggg \n",
"37 ggggrggg \n",
"38 ggggrggg \n",
"39 ggggrggg \n",
"40 gggggggG \n",
"41 gggggggr \n",
"42 gggggggr \n",
"43 gggggggr \n",
"44 gGGrgrrrgGGGGrgrr \n",
"45 grrGgrrrgrrrrGgrr \n",
"46 grrrgGGGgrrrrrgrr \n",
"47 grrrgGGrgrrrrrgGr \n",
"48 grrrgrrrgrrrrrgGG \n",
"49 gGGGGGrgrr \n",
"50 grrGGGGgrr \n",
"51 grrrrrrgGG \n",
"52 ggggrgggg \n",
"53 ggggGgggg \n",
"54 ggggrgggg \n",
"55 ggggrgggg \n",
"56 ggggrgggg \n",
"57 grrrrrrrgGGGgrrr \n",
"58 grrrrrrrgrrrgGGG \n",
"59 grrrGGGrgrrrgGGr "
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.histids[:60]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "rts",
"language": "python",
"name": "rts"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}