diff --git a/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb b/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb index 33ae331fd..d6847e242 100644 --- a/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb +++ b/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -7022,27 +7022,6 @@ " cmatch.loc[right_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id]" ] }, - { - "cell_type": "code", - "execution_count": 229, - "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'DailyPreprocessor' object has no attribute 'matches'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[229], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmatches\u001b[49m\n", - "\u001b[1;31mAttributeError\u001b[0m: 'DailyPreprocessor' object has no attribute 'matches'" - ] - } - ], - "source": [ - "self.matches" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -7394,7 +7373,28 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'SignalGenerator' object has no attribute 'unodes'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munodes\u001b[49m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'SignalGenerator' object has no attribute 'unodes'" + ] + } + ], + "source": [ + "self.unodes" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -7418,53 +7418,89 @@ " \n", " \n", " \n", + " inter_no\n", " node_id\n", " start_unix\n", - " phase\n", + " phas_A\n", + " phas_B\n", + " move_A\n", + " move_B\n", " duration\n", - " state\n", + " state_A\n", + " state_B\n", + " phase_sumo\n", " \n", " \n", " \n", " \n", " 0\n", + " 178\n", " c30\n", " 1704416690\n", - " 1g_1g\n", - " 34\n", + " 1\n", + " 1\n", + " 8\n", + " 4\n", + " 38\n", " rrrrrr\n", + " rrrrrr\n", + " 0\n", " \n", " \n", " 1\n", + " 178\n", " c30\n", " 1704416690\n", - " 1y_1y\n", - " 4\n", - " rrrrrr\n", + " 2\n", + " 2\n", + " 7\n", + " 3\n", + " 39\n", + " GGGrrr\n", + " rrrGGG\n", + " 1\n", " \n", " \n", " 2\n", + " 178\n", " c30\n", " 1704416690\n", - " 2r_2r\n", + " 3\n", + " 3\n", + " 5\n", + " 2\n", + " 43\n", + " GGGrrr\n", + " rrrGGG\n", " 2\n", - " rrrrrr\n", " \n", " \n", " 3\n", + " 178\n", " c30\n", " 1704416690\n", - " 2g_2g\n", - " 33\n", - " GGGGGG\n", + " 4\n", + " 4\n", + " 6\n", + " 1\n", + " 22\n", + " GGGrrr\n", + " rrrGGG\n", + " 3\n", " \n", " \n", " 4\n", + " 178\n", " c30\n", - " 1704416690\n", - " 2y_2y\n", + " 1704416860\n", + " 1\n", + " 1\n", + " 8\n", " 4\n", - " GGGGGG\n", + " 38\n", + " rrrrrr\n", + " rrrrrr\n", + " 0\n", " \n", " \n", " ...\n", @@ -7473,237 +7509,2825 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 51\n", + " 233\n", + " 210\n", " u60\n", " 1704417140\n", - " 2r_2g\n", - " 2\n", + " 1\n", + " 1\n", + " 6\n", + " 18\n", + " 28\n", " ggggggggr\n", + " ggggggggr\n", + " 0\n", " \n", " \n", - " 52\n", + " 234\n", + " 210\n", " u60\n", " 1704417140\n", - " 2g_2g\n", - " 37\n", - " ggggggggG\n", + " 1\n", + " 2\n", + " 6\n", + " 2\n", + " 15\n", + " ggggggggr\n", + " ggggggggr\n", + " 1\n", " \n", " \n", - " 53\n", + " 235\n", + " 210\n", " u60\n", " 1704417140\n", - " 2y_2y\n", - " 4\n", - " ggggggggy\n", + " 2\n", + " 2\n", + " 5\n", + " 2\n", + " 43\n", + " ggggggggG\n", + " ggggggggr\n", + " 2\n", " \n", " \n", - " 54\n", + " 236\n", + " 210\n", " u60\n", " 1704417140\n", - " 3r_3r\n", - " 2\n", + " 3\n", + " 3\n", + " 7\n", + " 4\n", + " 70\n", + " ggggggggr\n", " ggggggggr\n", + " 3\n", " \n", " \n", - " 55\n", + " 237\n", + " 210\n", " u60\n", " 1704417140\n", - " 3g_3g\n", - " 64\n", + " 4\n", + " 4\n", + " 8\n", + " 3\n", + " 24\n", " ggggggggr\n", + " ggggggggr\n", + " 4\n", " \n", " \n", "\n", - "

637 rows × 5 columns

\n", + "

238 rows × 11 columns

\n", "" ], "text/plain": [ - " node_id start_unix phase duration state\n", - "0 c30 1704416690 1g_1g 34 rrrrrr\n", - "1 c30 1704416690 1y_1y 4 rrrrrr\n", - "2 c30 1704416690 2r_2r 2 rrrrrr\n", - "3 c30 1704416690 2g_2g 33 GGGGGG\n", - "4 c30 1704416690 2y_2y 4 GGGGGG\n", - ".. ... ... ... ... ...\n", - "51 u60 1704417140 2r_2g 2 ggggggggr\n", - "52 u60 1704417140 2g_2g 37 ggggggggG\n", - "53 u60 1704417140 2y_2y 4 ggggggggy\n", - "54 u60 1704417140 3r_3r 2 ggggggggr\n", - "55 u60 1704417140 3g_3g 64 ggggggggr\n", + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "0 178 c30 1704416690 1 1 8 4 38 \n", + "1 178 c30 1704416690 2 2 7 3 39 \n", + "2 178 c30 1704416690 3 3 5 2 43 \n", + "3 178 c30 1704416690 4 4 6 1 22 \n", + "4 178 c30 1704416860 1 1 8 4 38 \n", + ".. ... ... ... ... ... ... ... ... \n", + "233 210 u60 1704417140 1 1 6 18 28 \n", + "234 210 u60 1704417140 1 2 6 2 15 \n", + "235 210 u60 1704417140 2 2 5 2 43 \n", + "236 210 u60 1704417140 3 3 7 4 70 \n", + "237 210 u60 1704417140 4 4 8 3 24 \n", + "\n", + " state_A state_B phase_sumo \n", + "0 rrrrrr rrrrrr 0 \n", + "1 GGGrrr rrrGGG 1 \n", + "2 GGGrrr rrrGGG 2 \n", + "3 GGGrrr rrrGGG 3 \n", + "4 rrrrrr rrrrrr 0 \n", + ".. ... ... ... \n", + "233 ggggggggr ggggggggr 0 \n", + "234 ggggggggr ggggggggr 1 \n", + "235 ggggggggG ggggggggr 2 \n", + "236 ggggggggr ggggggggr 3 \n", + "237 ggggggggr ggggggggr 4 \n", "\n", - "[637 rows x 5 columns]" + "[238 rows x 11 columns]" ] }, - "execution_count": 9, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "self.SIGTABLE" + "self.sigtable" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "self = DailyPreprocessor()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "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", + "2. 중간산출물을 생성합니다.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:14<00:00, 1177.84it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2-1. 매칭 테이블들을 생성했습니다.\n", + "2-2. 비보호우회전(g)을 배정했습니다.\n", + "2-3. 직진 및 좌회전(G)을 배정했습니다.\n", + "2-2. node2num_cycles.json를 저장했습니다.\n", + "3. 이슈사항을 저장합니다.\n" + ] + } + ], + "source": [ + "self.main()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "text/plain": [ + "['u00', 'u20', 'u30', 'u31', 'u32', 'u60']" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.uturn_ids" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "uid2uindex = {}\n", + "for uid in self.uturn_ids:\n", + " states = self.match6[self.match6.node_id==uid].state.unique()\n", + " for state in states:\n", + " if 'G' in state:\n", + " index = state.index('G')\n", + " uid2uindex[uid] = index\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'u00': 4, 'u20': 2, 'u30': 4, 'u31': 4, 'u32': 7, 'u60': 8}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "uid2uindex" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "
node_idstart_unixphasedurationstate
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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_idphase_noring_typemove_nostate
62178u311A8ggggGggg
63178u311B4ggggrggg
64178u312A7ggggrggg
65178u312B3ggggrggg
66178u313A5ggggrggg
67178u313B2ggggrggg
68178u314A6ggggrggg
69178u314B1ggggrggg
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no state\n", + "62 178 u31 1 A 8 ggggGggg\n", + "63 178 u31 1 B 4 ggggrggg\n", + "64 178 u31 2 A 7 ggggrggg\n", + "65 178 u31 2 B 3 ggggrggg\n", + "66 178 u31 3 A 5 ggggrggg\n", + "67 178 u31 3 B 2 ggggrggg\n", + "68 178 u31 4 A 6 ggggrggg\n", + "69 178 u31 4 B 1 ggggrggg" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "self.match6[self.match6.node_id=='u31']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self.match6" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "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.063416\n", + "(1-1) 0:00:00.011400\n", + "(1-2) 0:00:00.028645\n", + "(1-3) 0:00:00\n", + "(1-4) 0:00:00\n", + "(1-5) 0:00:00.023371\n", + "(2) 0:00:00.327466\n", + "(2-1) 0:00:00.079160\n", + "(2-2) 0:00:00.229118\n", + "(2-3) 0:00:00.019188\n", + "(3) 0:00:00.271045\n", + "(3-1) 0:00:00.252066\n", + "(3-2) 0:00:00.018979\n", + "(4) 0:00:00.176595\n", + "(4-1) 0:00:00\n", + "(4-2) 0:00:00.019843\n", + "(4-2) 0:00:00.156752\n", + "(5) 0:00:00.649060\n", + "(5-1) 0:00:00.010529\n", + "(5-2) 0:00:00.634530\n", + "(5-3) 0:00:00.004001\n", + "(6) 0:00:00.000928\n", + "total time : 0:00:01.488510\n" + ] + } + ], + "source": [ + "self = SignalGenerator()\n", + "self.main()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
0178c3017044166901g_1g341704419070118438rrrrrrrrrrrr0
1178c301704419070227339GGGrrrrrrGGG1
2178c301704419070335243GGGrrrrrrGGG2
3178c301704419070446122GGGrrrrrrGGG3
4178c301704419240118438rrrrrrrrrrrr0
....................................
233210u6017044194801161828ggggggggrggggggggr0
234210u601704419480126215ggggggggrggggggggr1
235210u601704419480225243ggggggggGggggggggr2
236210u601704419480337470ggggggggrggggggggr3
237210u601704419480448324ggggggggrggggggggr4
\n", + "

238 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "0 178 c30 1704419070 1 1 8 4 38 \n", + "1 178 c30 1704419070 2 2 7 3 39 \n", + "2 178 c30 1704419070 3 3 5 2 43 \n", + "3 178 c30 1704419070 4 4 6 1 22 \n", + "4 178 c30 1704419240 1 1 8 4 38 \n", + ".. ... ... ... ... ... ... ... ... \n", + "233 210 u60 1704419480 1 1 6 18 28 \n", + "234 210 u60 1704419480 1 2 6 2 15 \n", + "235 210 u60 1704419480 2 2 5 2 43 \n", + "236 210 u60 1704419480 3 3 7 4 70 \n", + "237 210 u60 1704419480 4 4 8 3 24 \n", + "\n", + " state_A state_B phase_sumo \n", + "0 rrrrrr rrrrrr 0 \n", + "1 GGGrrr rrrGGG 1 \n", + "2 GGGrrr rrrGGG 2 \n", + "3 GGGrrr rrrGGG 3 \n", + "4 rrrrrr rrrrrr 0 \n", + ".. ... ... ... \n", + "233 ggggggggr ggggggggr 0 \n", + "234 ggggggggr ggggggggr 1 \n", + "235 ggggggggG ggggggggr 2 \n", + "236 ggggggggr ggggggggr 3 \n", + "237 ggggggggr ggggggggr 4 \n", + "\n", + "[238 rows x 11 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.sigtable" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
139175u001704419060118443ggggrggggggggrgggg0
140175u001704419060227345ggggGggggggggrgggg1
141175u001704419060336133ggggrggggggggrgggg2
142175u001704419060346222ggggrggggggggrgggg3
143175u001704419060445237ggggrggggggggrgggg4
....................................
233210u6017044194801161828ggggggggrggggggggr0
234210u601704419480126215ggggggggrggggggggr1
235210u601704419480225243ggggggggGggggggggr2
236210u601704419480337470ggggggggrggggggggr3
237210u601704419480448324ggggggggrggggggggr4
\n", + "

99 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "139 175 u00 1704419060 1 1 8 4 43 \n", + "140 175 u00 1704419060 2 2 7 3 45 \n", + "141 175 u00 1704419060 3 3 6 1 33 \n", + "142 175 u00 1704419060 3 4 6 2 22 \n", + "143 175 u00 1704419060 4 4 5 2 37 \n", + ".. ... ... ... ... ... ... ... ... \n", + "233 210 u60 1704419480 1 1 6 18 28 \n", + "234 210 u60 1704419480 1 2 6 2 15 \n", + "235 210 u60 1704419480 2 2 5 2 43 \n", + "236 210 u60 1704419480 3 3 7 4 70 \n", + "237 210 u60 1704419480 4 4 8 3 24 \n", + "\n", + " state_A state_B phase_sumo \n", + "139 ggggrgggg ggggrgggg 0 \n", + "140 ggggGgggg ggggrgggg 1 \n", + "141 ggggrgggg ggggrgggg 2 \n", + "142 ggggrgggg ggggrgggg 3 \n", + "143 ggggrgggg ggggrgggg 4 \n", + ".. ... ... ... \n", + "233 ggggggggr ggggggggr 0 \n", + "234 ggggggggr ggggggggr 1 \n", + "235 ggggggggG ggggggggr 2 \n", + "236 ggggggggr ggggggggr 3 \n", + "237 ggggggggr ggggggggr 4 \n", + "\n", + "[99 rows x 11 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.sigtable[self.sigtable.node_id.isin(self.uturn_ids)]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1\n", + "xbcd\n", + "1 2\n", + "axcd\n", + "2 3\n", + "abxd\n", + "3 4\n", + "abcx\n" + ] + } + ], + "source": [ + "A = 'abcd'\n", + "for i in range(len(A)):\n", + " print(i, i+1)\n", + " print(A[:i] + 'x' + A[i+1:])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self = SignalGenerator()\n", + "self.main()\n", + "import numpy as np\n" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
139175u001704416900118443ggggrggggggggrgggg0
140175u001704416900227345ggggGggggggggrgggg1
141175u001704416900336133ggggrggggggggrgggg2
142175u001704416900346222ggggrggggggggrgggg3
143175u001704416900445237ggggrggggggggrgggg4
144175u001704417080118443ggggrggggggggrgggg0
145175u001704417080227345ggggGggggggggrgggg1
146175u001704417080336133ggggrggggggggrgggg2
147175u001704417080346222ggggrggggggggrgggg3
148175u001704417080445237ggggrggggggggrgggg4
149175u001704417260118443ggggrggggggggrgggg0
150175u001704417260227345ggggGggggggggrgggg1
151175u001704417260336133ggggrggggggggrgggg2
152175u001704417260346222ggggrggggggggrgggg3
153175u001704417260445237ggggrggggggggrgggg4
\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "139 175 u00 1704416900 1 1 8 4 43 \n", + "140 175 u00 1704416900 2 2 7 3 45 \n", + "141 175 u00 1704416900 3 3 6 1 33 \n", + "142 175 u00 1704416900 3 4 6 2 22 \n", + "143 175 u00 1704416900 4 4 5 2 37 \n", + "144 175 u00 1704417080 1 1 8 4 43 \n", + "145 175 u00 1704417080 2 2 7 3 45 \n", + "146 175 u00 1704417080 3 3 6 1 33 \n", + "147 175 u00 1704417080 3 4 6 2 22 \n", + "148 175 u00 1704417080 4 4 5 2 37 \n", + "149 175 u00 1704417260 1 1 8 4 43 \n", + "150 175 u00 1704417260 2 2 7 3 45 \n", + "151 175 u00 1704417260 3 3 6 1 33 \n", + "152 175 u00 1704417260 3 4 6 2 22 \n", + "153 175 u00 1704417260 4 4 5 2 37 \n", + "\n", + " state_A state_B phase_sumo \n", + "139 ggggrgggg ggggrgggg 0 \n", + "140 ggggGgggg ggggrgggg 1 \n", + "141 ggggrgggg ggggrgggg 2 \n", + "142 ggggrgggg ggggrgggg 3 \n", + "143 ggggrgggg ggggrgggg 4 \n", + "144 ggggrgggg ggggrgggg 0 \n", + "145 ggggGgggg ggggrgggg 1 \n", + "146 ggggrgggg ggggrgggg 2 \n", + "147 ggggrgggg ggggrgggg 3 \n", + "148 ggggrgggg ggggrgggg 4 \n", + "149 ggggrgggg ggggrgggg 0 \n", + "150 ggggGgggg ggggrgggg 1 \n", + "151 ggggrgggg ggggrgggg 2 \n", + "152 ggggrgggg ggggrgggg 3 \n", + "153 ggggrgggg ggggrgggg 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", + " \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
154177u201704416880118443ggrgggggrggg0
155177u201704416880227327ggGgggggrggg1
156177u20170441688033171870ggrgggggrggg2
157177u201704416880445140ggrgggggrggg3
158177u201704417060118443ggrgggggrggg0
159177u201704417060227327ggGgggggrggg1
160177u20170441706033171870ggrgggggrggg2
161177u201704417060445140ggrgggggrggg3
162177u201704417240118443ggrgggggrggg0
163177u201704417240227327ggGgggggrggg1
164177u20170441724033171870ggrgggggrggg2
165177u201704417240445140ggrgggggrggg3
166177u201704417420118443ggrgggggrggg0
167177u201704417420227327ggGgggggrggg1
168177u20170441742033171870ggrgggggrggg2
169177u201704417420445140ggrgggggrggg3
\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "154 177 u20 1704416880 1 1 8 4 43 \n", + "155 177 u20 1704416880 2 2 7 3 27 \n", + "156 177 u20 1704416880 3 3 17 18 70 \n", + "157 177 u20 1704416880 4 4 5 1 40 \n", + "158 177 u20 1704417060 1 1 8 4 43 \n", + "159 177 u20 1704417060 2 2 7 3 27 \n", + "160 177 u20 1704417060 3 3 17 18 70 \n", + "161 177 u20 1704417060 4 4 5 1 40 \n", + "162 177 u20 1704417240 1 1 8 4 43 \n", + "163 177 u20 1704417240 2 2 7 3 27 \n", + "164 177 u20 1704417240 3 3 17 18 70 \n", + "165 177 u20 1704417240 4 4 5 1 40 \n", + "166 177 u20 1704417420 1 1 8 4 43 \n", + "167 177 u20 1704417420 2 2 7 3 27 \n", + "168 177 u20 1704417420 3 3 17 18 70 \n", + "169 177 u20 1704417420 4 4 5 1 40 \n", + "\n", + " state_A state_B phase_sumo \n", + "154 ggrggg ggrggg 0 \n", + "155 ggGggg ggrggg 1 \n", + "156 ggrggg ggrggg 2 \n", + "157 ggrggg ggrggg 3 \n", + "158 ggrggg ggrggg 0 \n", + "159 ggGggg ggrggg 1 \n", + "160 ggrggg ggrggg 2 \n", + "161 ggrggg ggrggg 3 \n", + "162 ggrggg ggrggg 0 \n", + "163 ggGggg ggrggg 1 \n", + "164 ggrggg ggrggg 2 \n", + "165 ggrggg ggrggg 3 \n", + "166 ggrggg ggrggg 0 \n", + "167 ggGggg ggrggg 1 \n", + "168 ggrggg ggrggg 2 \n", + "169 ggrggg ggrggg 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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
170178u301704416860118438ggggrgggggggrggg0
171178u301704416860227339ggggrgggggggrggg1
172178u301704416860335243ggggrgggggggrggg2
173178u301704416860446122ggggGgggggggrggg3
174178u301704417029118438ggggrgggggggrggg0
175178u301704417029227339ggggrgggggggrggg1
176178u301704417029335243ggggrgggggggrggg2
177178u301704417029446122ggggGgggggggrggg3
178178u301704417199118438ggggrgggggggrggg0
179178u301704417199227339ggggrgggggggrggg1
180178u301704417199335243ggggrgggggggrggg2
181178u301704417199446122ggggGgggggggrggg3
182178u301704417369118438ggggrgggggggrggg0
183178u301704417369227339ggggrgggggggrggg1
184178u301704417369335243ggggrgggggggrggg2
185178u301704417369446122ggggGgggggggrggg3
\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "170 178 u30 1704416860 1 1 8 4 38 \n", + "171 178 u30 1704416860 2 2 7 3 39 \n", + "172 178 u30 1704416860 3 3 5 2 43 \n", + "173 178 u30 1704416860 4 4 6 1 22 \n", + "174 178 u30 1704417029 1 1 8 4 38 \n", + "175 178 u30 1704417029 2 2 7 3 39 \n", + "176 178 u30 1704417029 3 3 5 2 43 \n", + "177 178 u30 1704417029 4 4 6 1 22 \n", + "178 178 u30 1704417199 1 1 8 4 38 \n", + "179 178 u30 1704417199 2 2 7 3 39 \n", + "180 178 u30 1704417199 3 3 5 2 43 \n", + "181 178 u30 1704417199 4 4 6 1 22 \n", + "182 178 u30 1704417369 1 1 8 4 38 \n", + "183 178 u30 1704417369 2 2 7 3 39 \n", + "184 178 u30 1704417369 3 3 5 2 43 \n", + "185 178 u30 1704417369 4 4 6 1 22 \n", + "\n", + " state_A state_B phase_sumo \n", + "170 ggggrggg ggggrggg 0 \n", + "171 ggggrggg ggggrggg 1 \n", + "172 ggggrggg ggggrggg 2 \n", + "173 ggggGggg ggggrggg 3 \n", + "174 ggggrggg ggggrggg 0 \n", + "175 ggggrggg ggggrggg 1 \n", + "176 ggggrggg ggggrggg 2 \n", + "177 ggggGggg ggggrggg 3 \n", + "178 ggggrggg ggggrggg 0 \n", + "179 ggggrggg ggggrggg 1 \n", + "180 ggggrggg ggggrggg 2 \n", + "181 ggggGggg ggggrggg 3 \n", + "182 ggggrggg ggggrggg 0 \n", + "183 ggggrggg ggggrggg 1 \n", + "184 ggggrggg ggggrggg 2 \n", + "185 ggggGggg ggggrggg 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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
186178u311704416860118438ggggGgggggggrggg0
187178u311704416860227339ggggrgggggggrggg1
188178u311704416860335243ggggrgggggggrggg2
189178u311704416860446122ggggrgggggggrggg3
190178u311704417029118438ggggGgggggggrggg0
191178u311704417029227339ggggrgggggggrggg1
192178u311704417029335243ggggrgggggggrggg2
193178u311704417029446122ggggrgggggggrggg3
194178u311704417199118438ggggGgggggggrggg0
195178u311704417199227339ggggrgggggggrggg1
196178u311704417199335243ggggrgggggggrggg2
197178u311704417199446122ggggrgggggggrggg3
198178u311704417369118438ggggGgggggggrggg0
199178u311704417369227339ggggrgggggggrggg1
200178u311704417369335243ggggrgggggggrggg2
201178u311704417369446122ggggrgggggggrggg3
\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "186 178 u31 1704416860 1 1 8 4 38 \n", + "187 178 u31 1704416860 2 2 7 3 39 \n", + "188 178 u31 1704416860 3 3 5 2 43 \n", + "189 178 u31 1704416860 4 4 6 1 22 \n", + "190 178 u31 1704417029 1 1 8 4 38 \n", + "191 178 u31 1704417029 2 2 7 3 39 \n", + "192 178 u31 1704417029 3 3 5 2 43 \n", + "193 178 u31 1704417029 4 4 6 1 22 \n", + "194 178 u31 1704417199 1 1 8 4 38 \n", + "195 178 u31 1704417199 2 2 7 3 39 \n", + "196 178 u31 1704417199 3 3 5 2 43 \n", + "197 178 u31 1704417199 4 4 6 1 22 \n", + "198 178 u31 1704417369 1 1 8 4 38 \n", + "199 178 u31 1704417369 2 2 7 3 39 \n", + "200 178 u31 1704417369 3 3 5 2 43 \n", + "201 178 u31 1704417369 4 4 6 1 22 \n", + "\n", + " state_A state_B phase_sumo \n", + "186 ggggGggg ggggrggg 0 \n", + "187 ggggrggg ggggrggg 1 \n", + "188 ggggrggg ggggrggg 2 \n", + "189 ggggrggg ggggrggg 3 \n", + "190 ggggGggg ggggrggg 0 \n", + "191 ggggrggg ggggrggg 1 \n", + "192 ggggrggg ggggrggg 2 \n", + "193 ggggrggg ggggrggg 3 \n", + "194 ggggGggg ggggrggg 0 \n", + "195 ggggrggg ggggrggg 1 \n", + "196 ggggrggg ggggrggg 2 \n", + "197 ggggrggg ggggrggg 3 \n", + "198 ggggGggg ggggrggg 0 \n", + "199 ggggrggg ggggrggg 1 \n", + "200 ggggrggg ggggrggg 2 \n", + "201 ggggrggg ggggrggg 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", + "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
202178u321704416860118438gggggggrgggggggG0
203178u321704416860227339gggggggrgggggggr1
204178u321704416860335243gggggggrgggggggr2
205178u321704416860446122gggggggrgggggggr3
206178u321704417029118438gggggggrgggggggG0
207178u321704417029227339gggggggrgggggggr1
208178u321704417029335243gggggggrgggggggr2
209178u321704417029446122gggggggrgggggggr3
210178u321704417199118438gggggggrgggggggG0
211178u321704417199227339gggggggrgggggggr1
212178u321704417199335243gggggggrgggggggr2
213178u321704417199446122gggggggrgggggggr3
214178u321704417369118438gggggggrgggggggG0
215178u321704417369227339gggggggrgggggggr1
216178u321704417369335243gggggggrgggggggr2
217178u321704417369446122gggggggrgggggggr3
\n", + "
" + ], + "text/plain": [ + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "202 178 u32 1704416860 1 1 8 4 38 \n", + "203 178 u32 1704416860 2 2 7 3 39 \n", + "204 178 u32 1704416860 3 3 5 2 43 \n", + "205 178 u32 1704416860 4 4 6 1 22 \n", + "206 178 u32 1704417029 1 1 8 4 38 \n", + "207 178 u32 1704417029 2 2 7 3 39 \n", + "208 178 u32 1704417029 3 3 5 2 43 \n", + "209 178 u32 1704417029 4 4 6 1 22 \n", + "210 178 u32 1704417199 1 1 8 4 38 \n", + "211 178 u32 1704417199 2 2 7 3 39 \n", + "212 178 u32 1704417199 3 3 5 2 43 \n", + "213 178 u32 1704417199 4 4 6 1 22 \n", + "214 178 u32 1704417369 1 1 8 4 38 \n", + "215 178 u32 1704417369 2 2 7 3 39 \n", + "216 178 u32 1704417369 3 3 5 2 43 \n", + "217 178 u32 1704417369 4 4 6 1 22 \n", + "\n", + " state_A state_B phase_sumo \n", + "202 gggggggr gggggggG 0 \n", + "203 gggggggr gggggggr 1 \n", + "204 gggggggr gggggggr 2 \n", + "205 gggggggr gggggggr 3 \n", + "206 gggggggr gggggggG 0 \n", + "207 gggggggr gggggggr 1 \n", + "208 gggggggr gggggggr 2 \n", + "209 gggggggr gggggggr 3 \n", + "210 gggggggr gggggggG 0 \n", + "211 gggggggr gggggggr 1 \n", + "212 gggggggr gggggggr 2 \n", + "213 gggggggr gggggggr 3 \n", + "214 gggggggr gggggggG 0 \n", + "215 gggggggr gggggggr 1 \n", + "216 gggggggr gggggggr 2 \n", + "217 gggggggr gggggggr 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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1c3017044166901y_1y4rrrrrr218210u6017044169601161828ggggggggrggggggggr0
2c3017044166902r_2r219210u60170441696012rrrrrr6215ggggggggrggggggggr1
3c3017044166902g_2g33GGGGGG220210u601704416960225243ggggggggGggggggggr2
4c3017044166902y_2y221210u6017044169603374GGGGGG70ggggggggrggggggggr3
..................222210u601704416960448324ggggggggrggggggggr4
223210u6017044171401161828ggggggggrggggggggr0
51224210u6017044171402r_2g126215ggggggggrggggggggr1
52225210u6017044171402g_2g37225243ggggggggGggggggggr2
53226210u6017044171402y_2y3374ggggggggy70ggggggggrggggggggr3
54227210u6017044171403r_3r448324ggggggggrggggggggr4
228210u6017044173201161828ggggggggrggggggggr0
229210u601704417320126215ggggggggrggggggggr1
55230210u6017044171403g_3g641704417320225243ggggggggGggggggggr2
231210u601704417320337470ggggggggrggggggggr3
232210u601704417320448324ggggggggrggggggggr4
233210u6017044175001161828ggggggggrggggggggr0
234210u601704417500126215ggggggggrggggggggr1
235210u601704417500225243ggggggggGggggggggr2
236210u601704417500337470ggggggggrggggggggr3
237210u601704417500448324ggggggggrggggggggr4
\n", - "

637 rows × 5 columns

\n", "
" ], "text/plain": [ - " node_id start_unix phase duration state\n", - "0 c30 1704416690 1g_1g 34 rrrrrr\n", - "1 c30 1704416690 1y_1y 4 rrrrrr\n", - "2 c30 1704416690 2r_2r 2 rrrrrr\n", - "3 c30 1704416690 2g_2g 33 GGGGGG\n", - "4 c30 1704416690 2y_2y 4 GGGGGG\n", - ".. ... ... ... ... ...\n", - "51 u60 1704417140 2r_2g 2 ggggggggr\n", - "52 u60 1704417140 2g_2g 37 ggggggggG\n", - "53 u60 1704417140 2y_2y 4 ggggggggy\n", - "54 u60 1704417140 3r_3r 2 ggggggggr\n", - "55 u60 1704417140 3g_3g 64 ggggggggr\n", + " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", + "218 210 u60 1704416960 1 1 6 18 28 \n", + "219 210 u60 1704416960 1 2 6 2 15 \n", + "220 210 u60 1704416960 2 2 5 2 43 \n", + "221 210 u60 1704416960 3 3 7 4 70 \n", + "222 210 u60 1704416960 4 4 8 3 24 \n", + "223 210 u60 1704417140 1 1 6 18 28 \n", + "224 210 u60 1704417140 1 2 6 2 15 \n", + "225 210 u60 1704417140 2 2 5 2 43 \n", + "226 210 u60 1704417140 3 3 7 4 70 \n", + "227 210 u60 1704417140 4 4 8 3 24 \n", + "228 210 u60 1704417320 1 1 6 18 28 \n", + "229 210 u60 1704417320 1 2 6 2 15 \n", + "230 210 u60 1704417320 2 2 5 2 43 \n", + "231 210 u60 1704417320 3 3 7 4 70 \n", + "232 210 u60 1704417320 4 4 8 3 24 \n", + "233 210 u60 1704417500 1 1 6 18 28 \n", + "234 210 u60 1704417500 1 2 6 2 15 \n", + "235 210 u60 1704417500 2 2 5 2 43 \n", + "236 210 u60 1704417500 3 3 7 4 70 \n", + "237 210 u60 1704417500 4 4 8 3 24 \n", "\n", - "[637 rows x 5 columns]" + " state_A state_B phase_sumo \n", + "218 ggggggggr ggggggggr 0 \n", + "219 ggggggggr ggggggggr 1 \n", + "220 ggggggggG ggggggggr 2 \n", + "221 ggggggggr ggggggggr 3 \n", + "222 ggggggggr ggggggggr 4 \n", + "223 ggggggggr ggggggggr 0 \n", + "224 ggggggggr ggggggggr 1 \n", + "225 ggggggggG ggggggggr 2 \n", + "226 ggggggggr ggggggggr 3 \n", + "227 ggggggggr ggggggggr 4 \n", + "228 ggggggggr ggggggggr 0 \n", + "229 ggggggggr ggggggggr 1 \n", + "230 ggggggggG ggggggggr 2 \n", + "231 ggggggggr ggggggggr 3 \n", + "232 ggggggggr ggggggggr 4 \n", + "233 ggggggggr ggggggggr 0 \n", + "234 ggggggggr ggggggggr 1 \n", + "235 ggggggggG ggggggggr 2 \n", + "236 ggggggggr ggggggggr 3 \n", + "237 ggggggggr ggggggggr 4 " ] }, - "execution_count": 12, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "self.SIGTABLE" + "# 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정\n", + "for uturn_id in self.uturn_ids:\n", + " the_uturn = self.sigtable.node_id==uturn_id\n", + " states = np.unique(self.sigtable[the_uturn][['state_A', 'state_B']].values)\n", + " if not any('G' in state for state in states):\n", + " uindex = self.uid2uindex[uturn_id]\n", + " for i, row in self.sigtable[the_uturn].iterrows():\n", + " self.sigtable.at[i, 'state_A'] = row.state_A[:uindex] + 'g' + row.state_A[uindex+1:]\n", + " self.sigtable.at[i, 'state_B'] = row.state_B[:uindex] + 'g' + row.state_B[uindex+1:]" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/Intermediates/ids.json b/Intermediates/ids.json new file mode 100644 index 000000000..4bcfb83b2 --- /dev/null +++ b/Intermediates/ids.json @@ -0,0 +1 @@ +{"node_ids": ["c30", "i0", "i1", "i2", "i3", "i6", "i7", "i8", "i9", "u00", "u20", "u30", "u31", "u32", "u60"], "parent_ids": ["i0", "i1", "i2", "i3", "i6", "i7", "i8", "i9"], "child_ids": ["c30", "u00", "u20", "u30", "u31", "u32", "u60"], "uturn_ids": ["u00", "u20", "u30", "u31", "u32", "u60"], "coord_ids": ["c30"], "inter_nos": [175, 176, 177, 178, 201, 202, 206, 210]} \ No newline at end of file diff --git a/Intermediates/match6.csv b/Intermediates/match6.csv index d1e39887a..c857bec2e 100644 --- a/Intermediates/match6.csv +++ b/Intermediates/match6.csv @@ -31,10 +31,10 @@ 29,177,i2,4,B,1,rrgrrrr 30,177,u20,1,A,8,ggrggg 31,177,u20,1,B,4,ggrggg -32,177,u20,2,A,7,ggrggg +32,177,u20,2,A,7,ggGggg 33,177,u20,2,B,3,ggrggg 34,177,u20,3,A,17,ggrggg -35,177,u20,3,B,18,ggGggg +35,177,u20,3,B,18,ggrggg 36,177,u20,4,A,5,ggrggg 37,177,u20,4,B,1,ggrggg 38,178,c30,1,A,20,rrrrrr diff --git a/Intermediates/matching.csv b/Intermediates/matching.csv index ddf34a10a..c0e3030de 100644 --- a/Intermediates/matching.csv +++ b/Intermediates/matching.csv @@ -30,47 +30,48 @@ 28,177,i2,21,rrgrrrr 29,177,i2,21,rrgrrrr 30,177,i2,21,rrgrrrr -31,178,i3,1,grrrrgrrrGgrrrrgrrrr -32,178,i3,2,grrrrgrrrrgrrrrgGGGr -33,178,i3,3,grrrrgrrrrgrrrGgrrrr -34,178,i3,4,gGGGrgrrrrgrrrrgrrrr -35,178,i3,5,grrrrgrrrrgrrrrgrrrG -36,178,i3,6,grrrrgGGGrgrrrrgrrrr -37,178,i3,7,grrrGgrrrrgrrrrgrrrr -38,178,i3,8,grrrrgrrrrgGGGrgrrrr -39,178,i3,21,grrrrgrrrrgrrrrgrrrr +31,177,u20,7,ggGggg +32,178,i3,1,grrrrgrrrGgrrrrgrrrr +33,178,i3,2,grrrrgrrrrgrrrrgGGGr +34,178,i3,3,grrrrgrrrrgrrrGgrrrr +35,178,i3,4,gGGGrgrrrrgrrrrgrrrr +36,178,i3,5,grrrrgrrrrgrrrrgrrrG +37,178,i3,6,grrrrgGGGrgrrrrgrrrr +38,178,i3,7,grrrGgrrrrgrrrrgrrrr +39,178,i3,8,grrrrgrrrrgGGGrgrrrr 40,178,i3,21,grrrrgrrrrgrrrrgrrrr 41,178,i3,21,grrrrgrrrrgrrrrgrrrr 42,178,i3,21,grrrrgrrrrgrrrrgrrrr -43,178,u30,6,ggggGggg -44,178,u31,8,ggggGggg -45,178,u32,4,gggggggG -46,201,i8,1,grrrrrrGgrrrgrrr -47,201,i8,2,grrrrrrrgrrrgGGr -48,201,i8,3,grrrrrrrgrrGgrrr -49,201,i8,4,gGGrrrrrgrrrgrrr -50,201,i8,5,grrrrrrrgrrrgrrG -51,201,i8,6,grrrGGGrgrrrgrrr -52,201,i8,7,grrGrrrrgrrrgrrr -53,201,i8,8,grrrrrrrgGGrgrrr -54,201,i8,21,grrrrrrrgrrrgrrr +43,178,i3,21,grrrrgrrrrgrrrrgrrrr +44,178,u30,6,ggggGggg +45,178,u31,8,ggggGggg +46,178,u32,4,gggggggG +47,201,i8,1,grrrrrrGgrrrgrrr +48,201,i8,2,grrrrrrrgrrrgGGr +49,201,i8,3,grrrrrrrgrrGgrrr +50,201,i8,4,gGGrrrrrgrrrgrrr +51,201,i8,5,grrrrrrrgrrrgrrG +52,201,i8,6,grrrGGGrgrrrgrrr +53,201,i8,7,grrGrrrrgrrrgrrr +54,201,i8,8,grrrrrrrgGGrgrrr 55,201,i8,21,grrrrrrrgrrrgrrr 56,201,i8,21,grrrrrrrgrrrgrrr 57,201,i8,21,grrrrrrrgrrrgrrr -58,202,i9,2,rrGG -59,202,i9,6,GGrr -60,206,i7,4,GGrggrr -61,206,i7,8,rrrggGG -62,210,i6,1,grrrgrrrGgrrgrrr -63,210,i6,2,grrrgrrrrgrrgGGr -64,210,i6,3,grrrgrrrrgrrgrrr -65,210,i6,4,gGGrgrrrrgrrgrrr -66,210,i6,5,grrrgrrrrgrrgrrG -67,210,i6,6,grrrgGGGrgrrgrrr -68,210,i6,7,grrGgrrrrgrrgrrr -69,210,i6,8,grrrgrrrrgGGgrrr -70,210,i6,21,grrrgrrrrgrrgrrr +58,201,i8,21,grrrrrrrgrrrgrrr +59,202,i9,2,rrGG +60,202,i9,6,GGrr +61,206,i7,4,GGrggrr +62,206,i7,8,rrrggGG +63,210,i6,1,grrrgrrrGgrrgrrr +64,210,i6,2,grrrgrrrrgrrgGGr +65,210,i6,3,grrrgrrrrgrrgrrr +66,210,i6,4,gGGrgrrrrgrrgrrr +67,210,i6,5,grrrgrrrrgrrgrrG +68,210,i6,6,grrrgGGGrgrrgrrr +69,210,i6,7,grrGgrrrrgrrgrrr +70,210,i6,8,grrrgrrrrgGGgrrr 71,210,i6,21,grrrgrrrrgrrgrrr 72,210,i6,21,grrrgrrrrgrrgrrr 73,210,i6,21,grrrgrrrrgrrgrrr -74,210,u60,5,ggggggggG +74,210,i6,21,grrrgrrrrgrrgrrr +75,210,u60,5,ggggggggG diff --git a/Intermediates/uid2uindex.json b/Intermediates/uid2uindex.json new file mode 100644 index 000000000..798df7a6a --- /dev/null +++ b/Intermediates/uid2uindex.json @@ -0,0 +1 @@ +{"u00": 4, "u20": 2, "u30": 4, "u31": 4, "u32": 7, "u60": 8} \ No newline at end of file diff --git a/Results/sn_1704417300.add.xml b/Results/sn_1704417300.add.xml index 904cdaeee..e3553fecf 100644 --- a/Results/sn_1704417300.add.xml +++ b/Results/sn_1704417300.add.xml @@ -432,46 +432,46 @@ - - - - + - + - + - + - + - + - + - + - + + + + - - + + - + diff --git a/Results/sn_1704417600.add.xml b/Results/sn_1704417600.add.xml index a6ab0e57f..465bd94d3 100644 --- a/Results/sn_1704417600.add.xml +++ b/Results/sn_1704417600.add.xml @@ -1,62 +1,59 @@ - - - - + + + + - - + + - - + + + + + + + + - - - - - + + - - + + + + + + + + - - + + - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + - + - + - + @@ -68,10 +65,10 @@ - + - + @@ -83,17 +80,12 @@ - - - - - - - + + - + @@ -124,12 +116,9 @@ - - - - + @@ -172,120 +161,112 @@ - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + @@ -328,72 +309,66 @@ - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + @@ -412,12 +387,9 @@ - - - - + @@ -454,263 +426,244 @@ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - - - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - - + + - - + + + + + - - + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + \ No newline at end of file diff --git a/Results/sn_1704418200.add.xml b/Results/sn_1704418200.add.xml index fc537fa91..6a4fce0a7 100644 --- a/Results/sn_1704418200.add.xml +++ b/Results/sn_1704418200.add.xml @@ -1,62 +1,59 @@ - - - - + + + + - - + + - - + + + + + + + + - - - - - + + - - + + + + + + + + - - + + - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + - + - + - + @@ -68,10 +65,10 @@ - + - + @@ -83,17 +80,12 @@ - - - - - - - + + - + @@ -124,12 +116,9 @@ - - - - + @@ -172,120 +161,112 @@ - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + @@ -328,72 +309,66 @@ - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + @@ -412,12 +387,9 @@ - - - - + @@ -454,263 +426,244 @@ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - - - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - - + + - - + + + + + - - + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + \ No newline at end of file diff --git a/Results/sn_1704419400.add.xml b/Results/sn_1704419400.add.xml index acbfe5b92..03ffa6465 100644 --- a/Results/sn_1704419400.add.xml +++ b/Results/sn_1704419400.add.xml @@ -1,62 +1,59 @@ - - - - + + + + - - + + - - + + + + + + + + - - - - - + + - - + + + + + + + + - - + + - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + - + - + - + @@ -68,10 +65,10 @@ - + - + @@ -83,17 +80,12 @@ - - - - - - - + + - + @@ -124,12 +116,9 @@ - - - - + @@ -172,120 +161,112 @@ - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + @@ -328,72 +309,66 @@ - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + @@ -412,12 +387,9 @@ - - - - + @@ -454,263 +426,244 @@ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - - - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - - + + - - + + + + + - - + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + \ No newline at end of file diff --git a/Scripts/__pycache__/generate_signals.cpython-38.pyc b/Scripts/__pycache__/generate_signals.cpython-38.pyc index 04c2766d1..e7bb63f71 100644 Binary files a/Scripts/__pycache__/generate_signals.cpython-38.pyc and b/Scripts/__pycache__/generate_signals.cpython-38.pyc differ diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 7b1fdefde..ac52c6ccb 100644 Binary files a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc differ diff --git a/Scripts/generate_signals.py b/Scripts/generate_signals.py index 56e195b6d..5b43b9f28 100644 --- a/Scripts/generate_signals.py +++ b/Scripts/generate_signals.py @@ -180,10 +180,16 @@ class SignalGenerator(): self.timetable = self.plan[['start_hour', 'start_minute']].drop_duplicates() self.timetable['start_seconds'] = self.midnight + self.timetable['start_hour'] * 3600 + self.timetable['start_minute'] * 60 + with open(os.path.join(self.path_intermediates, 'ids.json'), 'r') as file: + ids = json.load(file) + self.inter_nos = ids['inter_nos'] + self.node_ids = ids['node_ids'] + self.parent_ids = ids['parent_ids'] + self.child_ids = ids['child_ids'] + self.uturn_ids = ids['uturn_ids'] + self.coord_ids = ids['coord_ids'] + # A dictionary that maps parent_id to a list of child_ids - self.node_ids = sorted(self.inter_node.node_id.unique()) - self.parent_ids = sorted(self.inter_node[self.inter_node.inter_type=='parent'].node_id.unique()) - # self.pa2ch = {'i0':['u00'], 'i1':[], 'i2':['u20'], 'i3':['c30', 'u30', 'u31', 'u32'], 'i6':['u60'], 'i7':[], 'i8':[], 'i9':[]} self.pa2ch = {} for parent_id in self.parent_ids: inter_no = self.node2inter[parent_id] @@ -200,8 +206,8 @@ class SignalGenerator(): self.plan_set = self.plan.set_index(['inter_no','start_hour','start_minute']) - # 교차로목록 정의 - self.inter_nos = sorted(self.inter_info.inter_no.unique()) + with open(os.path.join(self.path_intermediates, 'uid2uindex.json'), 'r') as file: + self.uid2uindex = json.load(file) # 2. 신호이력 전처리 def process_history(self): @@ -704,7 +710,16 @@ class SignalGenerator(): self.sigtable.append(group) self.sigtable = pd.concat(self.sigtable).reset_index(drop=True) self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount() - # self.Sigtable = self.Sigtable[['node_id', 'start_unix', 'phase_sumo', 'duration', 'state']] + + # 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정 + for uturn_id in self.uturn_ids: + the_uturn = self.sigtable.node_id==uturn_id + states = np.unique(self.sigtable[the_uturn][['state_A', 'state_B']].values) + if not any('G' in state for state in states): + uindex = self.uid2uindex[uturn_id] + for i, row in self.sigtable[the_uturn].iterrows(): + self.sigtable.at[i, 'state_A'] = row.state_A[:uindex] + 'g' + row.state_A[uindex+1:] + self.sigtable.at[i, 'state_B'] = row.state_B[:uindex] + 'g' + row.state_B[uindex+1:] # 5-2. 적색 및 황색신호 부여 def assign_red_yellow(self): diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py index a25478b64..d78ed5f33 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -62,8 +62,9 @@ class DailyPreprocessor(): self.nema = pd.read_csv(os.path.join(self.path_tables, 'nema.csv'), encoding='cp949', dtype=loading_dtype) # 교차로목록, 노드목록 정의 - self.inter_nos = sorted(self.inter_info.inter_no.unique()) + self.inter_nos = [int(x) for x in sorted(self.inter_info.inter_no.unique())] self.node_ids = sorted(self.inter_node.node_id.unique()) + print("1-2. 테이블들이 로드되었습니다.") # 1-3. 네트워크 무결성 검사 @@ -431,6 +432,17 @@ class DailyPreprocessor(): self.child_ids = sorted(self.inter_node[self.inter_node.inter_type=='child'].node_id.unique()) self.uturn_ids = sorted(self.uturn.child_id.unique()) self.coord_ids = sorted(self.coord.child_id.unique()) + + # ids + ids = {'node_ids' : self.node_ids, + 'parent_ids': self.parent_ids, + 'child_ids' : self.child_ids, + 'uturn_ids' : self.uturn_ids, + 'coord_ids' : self.coord_ids, + 'inter_nos' : self.inter_nos} + with open(os.path.join(self.path_intermediates, 'ids.json'), 'w') as file: + json.dump(ids, file) + ch2pa = {} # child to parent for child_id in self.child_ids: @@ -506,6 +518,7 @@ class DailyPreprocessor(): cmatches = pd.concat(cmatches) self.match6 = pd.concat([self.match5, cmatches, self.coord]).drop_duplicates().sort_values(by=['inter_no', 'node_id', 'phase_no', 'ring_type']) # self.match6.to_csv(os.path.join(self.path_intermediates, 'match6.csv')) + # 2-1-7 def make_matching(self): @@ -742,6 +755,19 @@ class DailyPreprocessor(): self.matching.to_csv(os.path.join(self.path_intermediates, 'matching.csv')) print('2-3. 직진 및 좌회전(G)을 배정했습니다.') + uid2uindex = {} + for uid in self.uturn_ids: + states = self.match6[self.match6.node_id==uid].state.unique() + for state in states: + if 'G' in state: + index = state.index('G') + uid2uindex[uid] = index + break + + # json 파일로 저장 + with open(os.path.join(self.path_intermediates, 'uid2uindex.json'), 'w') as file: + json.dump(uid2uindex, file) + # 2-4 node2num_cycles : A dictionary that maps a node_id to the number of cycles def get_node2num_cycles(self): Aplan = self.plan.copy()[['inter_no'] + [f'dura_A{j}' for j in range(1,9)] + ['cycle']]