{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.listdir('../../scripts')\n", "import sys\n", "sys.path.append('../../Scripts')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from generate_signals import SignalGenerator" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from preprocess_daily import DailyPreprocessor" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1. 데이터를 준비합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", "1-2. 테이블들이 로드되었습니다.\n", "2. 신호이력 테이블을 변환합니다.\n", "3. 이동류정보 테이블을 변환합니다.\n", "4. 통합 테이블을 생성합니다.\n" ] } ], "source": [ "self = SignalGenerator()\n", "self.prepare_data()\n", "self.process_history()\n", "self.process_movement()\n", "self.make_histids()\n", "self.set_timepoints()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0inter_noend_unixdura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7...dura_B1dura_B2dura_B3dura_B4dura_B5dura_B6dura_B7dura_B8cycleoffset
77175170438056037395529000...37392559000016057
1515175170438072137395529000...37392559000016057
2424175170438088037395529000...37392559000016057
3333175170438104037395529000...37392559000016057
4141175170438119937395529000...37392559000016057
..................................................................
38863886175170446288046485541000...46483759000019018
38933893175170446307046485541000...46483759000019018
39003900175170446326146485541000...46483759000019018
39073907175170446345046485541000...46483759000019018
39143914175170446364046485541000...46483759000019018
\n", "

478 rows × 21 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no end_unix dura_A1 dura_A2 dura_A3 dura_A4 \\\n", "7 7 175 1704380560 37 39 55 29 \n", "15 15 175 1704380721 37 39 55 29 \n", "24 24 175 1704380880 37 39 55 29 \n", "33 33 175 1704381040 37 39 55 29 \n", "41 41 175 1704381199 37 39 55 29 \n", "... ... ... ... ... ... ... ... \n", "3886 3886 175 1704462880 46 48 55 41 \n", "3893 3893 175 1704463070 46 48 55 41 \n", "3900 3900 175 1704463261 46 48 55 41 \n", "3907 3907 175 1704463450 46 48 55 41 \n", "3914 3914 175 1704463640 46 48 55 41 \n", "\n", " dura_A5 dura_A6 dura_A7 ... dura_B1 dura_B2 dura_B3 dura_B4 \\\n", "7 0 0 0 ... 37 39 25 59 \n", "15 0 0 0 ... 37 39 25 59 \n", "24 0 0 0 ... 37 39 25 59 \n", "33 0 0 0 ... 37 39 25 59 \n", "41 0 0 0 ... 37 39 25 59 \n", "... ... ... ... ... ... ... ... ... \n", "3886 0 0 0 ... 46 48 37 59 \n", "3893 0 0 0 ... 46 48 37 59 \n", "3900 0 0 0 ... 46 48 37 59 \n", "3907 0 0 0 ... 46 48 37 59 \n", "3914 0 0 0 ... 46 48 37 59 \n", "\n", " dura_B5 dura_B6 dura_B7 dura_B8 cycle offset \n", "7 0 0 0 0 160 57 \n", "15 0 0 0 0 160 57 \n", "24 0 0 0 0 160 57 \n", "33 0 0 0 0 160 57 \n", "41 0 0 0 0 160 57 \n", "... ... ... ... ... ... ... \n", "3886 0 0 0 0 190 18 \n", "3893 0 0 0 0 190 18 \n", "3900 0 0 0 0 190 18 \n", "3907 0 0 0 0 190 18 \n", "3914 0 0 0 0 190 18 \n", "\n", "[478 rows x 21 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inter_no = 175\n", "Node_id = 'i0'\n", "self.history.query('inter_no==@inter_no') # 1-2 원본파일" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nostart_unixdura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7dura_A8dura_B1dura_B2dura_B3dura_B4dura_B5dura_B6dura_B7dura_B8cycle
19441751704417260434555370000434533590000180
19531751704417440434555370000434533590000180
19591751704417620434555370000434533590000180
19691751704417800434555370000434533590000180
19761751704417980434555370000434533590000180
19861751704418160434555370000434533590000180
19931751704418340434555370000434533590000180
20011751704418520434555370000434533590000180
20111751704418699434555370000434533590000180
20181751704418880434555370000434533590000180
01751704419520434555370000434533590000180
\n", "
" ], "text/plain": [ " inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 \\\n", "1944 175 1704417260 43 45 55 37 0 \n", "1953 175 1704417440 43 45 55 37 0 \n", "1959 175 1704417620 43 45 55 37 0 \n", "1969 175 1704417800 43 45 55 37 0 \n", "1976 175 1704417980 43 45 55 37 0 \n", "1986 175 1704418160 43 45 55 37 0 \n", "1993 175 1704418340 43 45 55 37 0 \n", "2001 175 1704418520 43 45 55 37 0 \n", "2011 175 1704418699 43 45 55 37 0 \n", "2018 175 1704418880 43 45 55 37 0 \n", "0 175 1704419520 43 45 55 37 0 \n", "\n", " dura_A6 dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 \\\n", "1944 0 0 0 43 45 33 59 0 \n", "1953 0 0 0 43 45 33 59 0 \n", "1959 0 0 0 43 45 33 59 0 \n", "1969 0 0 0 43 45 33 59 0 \n", "1976 0 0 0 43 45 33 59 0 \n", "1986 0 0 0 43 45 33 59 0 \n", "1993 0 0 0 43 45 33 59 0 \n", "2001 0 0 0 43 45 33 59 0 \n", "2011 0 0 0 43 45 33 59 0 \n", "2018 0 0 0 43 45 33 59 0 \n", "0 0 0 0 43 45 33 59 0 \n", "\n", " dura_B6 dura_B7 dura_B8 cycle \n", "1944 0 0 0 180 \n", "1953 0 0 0 180 \n", "1959 0 0 0 180 \n", "1969 0 0 0 180 \n", "1976 0 0 0 180 \n", "1986 0 0 0 180 \n", "1993 0 0 0 180 \n", "2001 0 0 0 180 \n", "2011 0 0 0 180 \n", "2018 0 0 0 180 \n", "0 0 0 0 180 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.rhistory.query('inter_no==@inter_no') # 2-1 현재시점 기준 30분 전부터의 이력" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nostart_unixdura_A1dura_A2dura_A3dura_A4dura_B1dura_B2dura_B3dura_B4...red_A4red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8
617517044183404345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
717517044185204345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
817517044186994345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
917517044188804345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1017517044190604345553743453359...1.01.01.01.01.01.01.01.01.01.0
1117517044192404345553743453359...1.01.01.01.01.01.01.01.01.01.0
1217517044194204345553743453359...1.01.01.01.01.01.01.01.01.01.0
1317517044195202425312024251833...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

8 rows × 43 columns

\n", "
" ], "text/plain": [ " inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_B1 \\\n", "6 175 1704418340 43 45 55 37 43 \n", "7 175 1704418520 43 45 55 37 43 \n", "8 175 1704418699 43 45 55 37 43 \n", "9 175 1704418880 43 45 55 37 43 \n", "10 175 1704419060 43 45 55 37 43 \n", "11 175 1704419240 43 45 55 37 43 \n", "12 175 1704419420 43 45 55 37 43 \n", "13 175 1704419520 24 25 31 20 24 \n", "\n", " dura_B2 dura_B3 dura_B4 ... red_A4 red_B4 red_A5 red_B5 red_A6 \\\n", "6 45 33 59 ... NaN NaN NaN NaN NaN \n", "7 45 33 59 ... NaN NaN NaN NaN NaN \n", "8 45 33 59 ... NaN NaN NaN NaN NaN \n", "9 45 33 59 ... NaN NaN NaN NaN NaN \n", "10 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "11 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "12 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "13 25 18 33 ... NaN NaN NaN NaN NaN \n", "\n", " red_B6 red_A7 red_B7 red_A8 red_B8 \n", "6 NaN NaN NaN NaN NaN \n", "7 NaN NaN NaN NaN NaN \n", "8 NaN NaN NaN NaN NaN \n", "9 NaN NaN NaN NaN NaN \n", "10 1.0 1.0 1.0 1.0 1.0 \n", "11 1.0 1.0 1.0 1.0 1.0 \n", "12 1.0 1.0 1.0 1.0 1.0 \n", "13 NaN NaN NaN NaN NaN \n", "\n", "[8 rows x 43 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.rhists.query('inter_no==@inter_no')\\\n", " .drop(['dura_A5', 'dura_A6', 'dura_A7', 'dura_A8', # 2-2 참값판단 프로세스\n", " 'dura_B5', 'dura_B6', 'dura_B7', 'dura_B8',\n", " 'D_n', 'S_n', 'Unnamed: 0'], axis=1)" ] }, { "cell_type": "code", "execution_count": 8, "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", "
inter_nostart_unixphas_Aphas_Bduration
20917517044183401143
21017517044183402245
21117517044183403333
21217517044183403422
21317517044183404437
21417517044185201143
21517517044185202245
21617517044185203333
21717517044185203422
21817517044185204437
21917517044186991143
22017517044186992245
22117517044186993333
22217517044186993422
22317517044186994437
\n", "
" ], "text/plain": [ " inter_no start_unix phas_A phas_B duration\n", "209 175 1704418340 1 1 43\n", "210 175 1704418340 2 2 45\n", "211 175 1704418340 3 3 33\n", "212 175 1704418340 3 4 22\n", "213 175 1704418340 4 4 37\n", "214 175 1704418520 1 1 43\n", "215 175 1704418520 2 2 45\n", "216 175 1704418520 3 3 33\n", "217 175 1704418520 3 4 22\n", "218 175 1704418520 4 4 37\n", "219 175 1704418699 1 1 43\n", "220 175 1704418699 2 2 45\n", "221 175 1704418699 3 3 33\n", "222 175 1704418699 3 4 22\n", "223 175 1704418699 4 4 37" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.hrhists.reset_index(drop=True).query('inter_no==@inter_no')[:15] # 2-3 계층화" ] }, { "cell_type": "code", "execution_count": 9, "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", "
inter_nostart_unixphas_Aphas_Bmove_Amove_Bdurationnode_idstate
2051751704418520118443i0gGGrgrrrgGGGGrgrr
2061751704418520227345i0grrGgrrrgrrrrGgrr
2071751704418520336133i0grrrgGGGgrrrrrgrr
2081751704418520346222i0grrrgGGrgrrrrrgGr
2091751704418520445237i0grrrgrrrgrrrrrgGG
2101751704418699118443i0gGGrgrrrgGGGGrgrr
2111751704418699227345i0grrGgrrrgrrrrGgrr
2121751704418699336133i0grrrgGGGgrrrrrgrr
2131751704418699346222i0grrrgGGrgrrrrrgGr
2141751704418699445237i0grrrgrrrgrrrrrgGG
2151751704418880118443i0gGGrgrrrgGGGGrgrr
2161751704418880227345i0grrGgrrrgrrrrGgrr
2171751704418880336133i0grrrgGGGgrrrrrgrr
2181751704418880346222i0grrrgGGrgrrrrrgGr
2191751704418880445237i0grrrgrrrgrrrrrgGG
\n", "
" ], "text/plain": [ " inter_no start_unix phas_A phas_B move_A move_B duration node_id \\\n", "205 175 1704418520 1 1 8 4 43 i0 \n", "206 175 1704418520 2 2 7 3 45 i0 \n", "207 175 1704418520 3 3 6 1 33 i0 \n", "208 175 1704418520 3 4 6 2 22 i0 \n", "209 175 1704418520 4 4 5 2 37 i0 \n", "210 175 1704418699 1 1 8 4 43 i0 \n", "211 175 1704418699 2 2 7 3 45 i0 \n", "212 175 1704418699 3 3 6 1 33 i0 \n", "213 175 1704418699 3 4 6 2 22 i0 \n", "214 175 1704418699 4 4 5 2 37 i0 \n", "215 175 1704418880 1 1 8 4 43 i0 \n", "216 175 1704418880 2 2 7 3 45 i0 \n", "217 175 1704418880 3 3 6 1 33 i0 \n", "218 175 1704418880 3 4 6 2 22 i0 \n", "219 175 1704418880 4 4 5 2 37 i0 \n", "\n", " state \n", "205 gGGrgrrrgGGGGrgrr \n", "206 grrGgrrrgrrrrGgrr \n", "207 grrrgGGGgrrrrrgrr \n", "208 grrrgGGrgrrrrrgGr \n", "209 grrrgrrrgrrrrrgGG \n", "210 gGGrgrrrgGGGGrgrr \n", "211 grrGgrrrgrrrrGgrr \n", "212 grrrgGGGgrrrrrgrr \n", "213 grrrgGGrgrrrrrgGr \n", "214 grrrgrrrgrrrrrgGG \n", "215 gGGrgrrrgGGGGrgrr \n", "216 grrGgrrrgrrrrGgrr \n", "217 grrrgGGGgrrrrrgrr \n", "218 grrrgGGrgrrrrrgGr \n", "219 grrrgrrrgrrrrrgGG " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.histid.query('node_id==@Node_id')[:15] # 4-2 state 붙임" ] }, { "cell_type": "code", "execution_count": 10, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate
0175i01704418520118443gGGrgrrrgGGGGrgrr
1175i01704418520227345grrGgrrrgrrrrGgrr
2175i01704418520336133grrrgGGGgrrrrrgrr
3175i01704418520346222grrrgGGrgrrrrrgGr
4175i01704418520445237grrrgrrrgrrrrrgGG
62175i01704418699118443gGGrgrrrgGGGGrgrr
63175i01704418699227345grrGgrrrgrrrrGgrr
64175i01704418699336133grrrgGGGgrrrrrgrr
65175i01704418699346222grrrgGGrgrrrrrgGr
66175i01704418699445237grrrgrrrgrrrrrgGG
131175i01704418880118443gGGrgrrrgGGGGrgrr
132175i01704418880227345grrGgrrrgrrrrGgrr
133175i01704418880336133grrrgGGGgrrrrrgrr
134175i01704418880346222grrrgGGrgrrrrrgGr
135175i01704418880445237grrrgrrrgrrrrrgGG
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "0 175 i0 1704418520 1 1 8 4 43 \n", "1 175 i0 1704418520 2 2 7 3 45 \n", "2 175 i0 1704418520 3 3 6 1 33 \n", "3 175 i0 1704418520 3 4 6 2 22 \n", "4 175 i0 1704418520 4 4 5 2 37 \n", "62 175 i0 1704418699 1 1 8 4 43 \n", "63 175 i0 1704418699 2 2 7 3 45 \n", "64 175 i0 1704418699 3 3 6 1 33 \n", "65 175 i0 1704418699 3 4 6 2 22 \n", "66 175 i0 1704418699 4 4 5 2 37 \n", "131 175 i0 1704418880 1 1 8 4 43 \n", "132 175 i0 1704418880 2 2 7 3 45 \n", "133 175 i0 1704418880 3 3 6 1 33 \n", "134 175 i0 1704418880 3 4 6 2 22 \n", "135 175 i0 1704418880 4 4 5 2 37 \n", "\n", " state \n", "0 gGGrgrrrgGGGGrgrr \n", "1 grrGgrrrgrrrrGgrr \n", "2 grrrgGGGgrrrrrgrr \n", "3 grrrgGGrgrrrrrgGr \n", "4 grrrgrrrgrrrrrgGG \n", "62 gGGrgrrrgGGGGrgrr \n", "63 grrGgrrrgrrrrGgrr \n", "64 grrrgGGGgrrrrrgrr \n", "65 grrrgGGrgrrrrrgGr \n", "66 grrrgrrrgrrrrrgGG \n", "131 gGGrgrrrgGGGGrgrr \n", "132 grrGgrrrgrrrrGgrr \n", "133 grrrgGGGgrrrrrgrr \n", "134 grrrgGGrgrrrrrgGr \n", "135 grrrgrrrgrrrrrgGG " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.histids.query('node_id==@Node_id')[:15] # 4-3 부교차로 정보 추가" ] }, { "cell_type": "code", "execution_count": 11, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstatephase_sumo
16175i01704418699118443gGGrgrrrgGGGGrgrr0
17175i01704418699227345grrGgrrrgrrrrGgrr1
18175i01704418699336133grrrgGGGgrrrrrgrr2
19175i01704418699346222grrrgGGrgrrrrrgGr3
20175i01704418699445237grrrgrrrgrrrrrgGG4
21175i01704418880118443gGGrgrrrgGGGGrgrr0
22175i01704418880227345grrGgrrrgrrrrGgrr1
23175i01704418880336133grrrgGGGgrrrrrgrr2
24175i01704418880346222grrrgGGrgrrrrrgGr3
25175i01704418880445237grrrgrrrgrrrrrgGG4
26175i01704419060118443gGGrgrrrgGGGGrgrr0
27175i01704419060227345grrGgrrrgrrrrGgrr1
28175i01704419060336133grrrgGGGgrrrrrgrr2
29175i01704419060346222grrrgGGrgrrrrrgGr3
30175i01704419060445237grrrgrrrgrrrrrgGG4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704418699 1 1 8 4 43 \n", "17 175 i0 1704418699 2 2 7 3 45 \n", "18 175 i0 1704418699 3 3 6 1 33 \n", "19 175 i0 1704418699 3 4 6 2 22 \n", "20 175 i0 1704418699 4 4 5 2 37 \n", "21 175 i0 1704418880 1 1 8 4 43 \n", "22 175 i0 1704418880 2 2 7 3 45 \n", "23 175 i0 1704418880 3 3 6 1 33 \n", "24 175 i0 1704418880 3 4 6 2 22 \n", "25 175 i0 1704418880 4 4 5 2 37 \n", "26 175 i0 1704419060 1 1 8 4 43 \n", "27 175 i0 1704419060 2 2 7 3 45 \n", "28 175 i0 1704419060 3 3 6 1 33 \n", "29 175 i0 1704419060 3 4 6 2 22 \n", "30 175 i0 1704419060 4 4 5 2 37 \n", "\n", " state phase_sumo \n", "16 gGGrgrrrgGGGGrgrr 0 \n", "17 grrGgrrrgrrrrGgrr 1 \n", "18 grrrgGGGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgGG 4 \n", "21 gGGrgrrrgGGGGrgrr 0 \n", "22 grrGgrrrgrrrrGgrr 1 \n", "23 grrrgGGGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgGG 4 \n", "26 gGGrgrrrgGGGGrgrr 0 \n", "27 grrGgrrrgrrrrGgrr 1 \n", "28 grrrgGGGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgGG 4 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.sigtable.query('node_id==@Node_id')[:15] # 5-1 시작, 종료시점 설정" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "self.assign_red_yellow()" ] }, { "cell_type": "code", "execution_count": 13, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstatephase_sumo
0175i01704418699118438gGGrgrrrgGGGGrgrr0_g
1175i0170441869911844gyyrgrrrgyyyyrgrr0_y
2175i0170441869922731grrrgrrrgrrrrrgrr1__r
0175i01704418699227340grrGgrrrgrrrrGgrr1_g
1175i0170441869922734grrygrrrgrrrrygrr1_y
2175i0170441869933611grrrgrrrgrrrrrgrr2__r
0175i01704418699336128grrrgGGGgrrrrrgrr2_g
1175i0170441869933614grrrgGGygrrrrrgrr2_y
2175i0170441869934621grrrgGGrgrrrrrgrr3__r
0175i01704418699346217grrrgGGrgrrrrrgGr3_g
1175i0170441869934624grrrgyyrgrrrrrgGr3_y
2175i0170441869944521grrrgrrrgrrrrrgGr4__r
0175i01704418699445232grrrgrrrgrrrrrgGG4_g
1175i0170441869944524grrrgrrrgrrrrrgyy4_y
2175i0170441888011841grrrgrrrgrrrrrgrr0__r
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "0 175 i0 1704418699 1 1 8 4 38 \n", "1 175 i0 1704418699 1 1 8 4 4 \n", "2 175 i0 1704418699 2 2 7 3 1 \n", "0 175 i0 1704418699 2 2 7 3 40 \n", "1 175 i0 1704418699 2 2 7 3 4 \n", "2 175 i0 1704418699 3 3 6 1 1 \n", "0 175 i0 1704418699 3 3 6 1 28 \n", "1 175 i0 1704418699 3 3 6 1 4 \n", "2 175 i0 1704418699 3 4 6 2 1 \n", "0 175 i0 1704418699 3 4 6 2 17 \n", "1 175 i0 1704418699 3 4 6 2 4 \n", "2 175 i0 1704418699 4 4 5 2 1 \n", "0 175 i0 1704418699 4 4 5 2 32 \n", "1 175 i0 1704418699 4 4 5 2 4 \n", "2 175 i0 1704418880 1 1 8 4 1 \n", "\n", " state phase_sumo \n", "0 gGGrgrrrgGGGGrgrr 0_g \n", "1 gyyrgrrrgyyyyrgrr 0_y \n", "2 grrrgrrrgrrrrrgrr 1__r \n", "0 grrGgrrrgrrrrGgrr 1_g \n", "1 grrygrrrgrrrrygrr 1_y \n", "2 grrrgrrrgrrrrrgrr 2__r \n", "0 grrrgGGGgrrrrrgrr 2_g \n", "1 grrrgGGygrrrrrgrr 2_y \n", "2 grrrgGGrgrrrrrgrr 3__r \n", "0 grrrgGGrgrrrrrgGr 3_g \n", "1 grrrgyyrgrrrrrgGr 3_y \n", "2 grrrgrrrgrrrrrgGr 4__r \n", "0 grrrgrrrgrrrrrgGG 4_g \n", "1 grrrgrrrgrrrrrgyy 4_y \n", "2 grrrgrrrgrrrrrgrr 0__r " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.SIGTABLE.query('node_id==@Node_id')[:15] # 5-2 적색 황색신호 부여" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "# dp = DailyPreprocessor()\n", "# dp.load_data()\n", "# dp.get_intermediates()" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "# 4-2. 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 " ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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_B
44175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
45175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
46175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
47175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
48175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
118175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
119175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
120175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
121175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
122175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
200175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
201175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
202175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
203175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
204175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
262175i01704416538118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
263175i01704416538227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
264175i01704416538336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
265175i01704416538346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
266175i01704416538445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
324175i01704416718118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
325175i01704416718227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
326175i01704416718336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
327175i01704416718346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
328175i01704416718445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
362175i01704416820118424grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
363175i01704416820227326grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
364175i01704416820336119grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
365175i01704416820346212grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
366175i01704416820445221grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "44 175 i0 1704415950 1 1 8 4 43 \n", "45 175 i0 1704415950 2 2 7 3 45 \n", "46 175 i0 1704415950 3 3 6 1 33 \n", "47 175 i0 1704415950 3 4 6 2 22 \n", "48 175 i0 1704415950 4 4 5 2 37 \n", "118 175 i0 1704416178 1 1 8 4 54 \n", "119 175 i0 1704416178 2 2 7 3 57 \n", "120 175 i0 1704416178 3 3 6 1 42 \n", "121 175 i0 1704416178 3 4 6 2 28 \n", "122 175 i0 1704416178 4 4 5 2 47 \n", "200 175 i0 1704416358 1 1 8 4 43 \n", "201 175 i0 1704416358 2 2 7 3 45 \n", "202 175 i0 1704416358 3 3 6 1 33 \n", "203 175 i0 1704416358 3 4 6 2 22 \n", "204 175 i0 1704416358 4 4 5 2 37 \n", "262 175 i0 1704416538 1 1 8 4 43 \n", "263 175 i0 1704416538 2 2 7 3 45 \n", "264 175 i0 1704416538 3 3 6 1 33 \n", "265 175 i0 1704416538 3 4 6 2 22 \n", "266 175 i0 1704416538 4 4 5 2 37 \n", "324 175 i0 1704416718 1 1 8 4 43 \n", "325 175 i0 1704416718 2 2 7 3 45 \n", "326 175 i0 1704416718 3 3 6 1 33 \n", "327 175 i0 1704416718 3 4 6 2 22 \n", "328 175 i0 1704416718 4 4 5 2 37 \n", "362 175 i0 1704416820 1 1 8 4 24 \n", "363 175 i0 1704416820 2 2 7 3 26 \n", "364 175 i0 1704416820 3 3 6 1 19 \n", "365 175 i0 1704416820 3 4 6 2 12 \n", "366 175 i0 1704416820 4 4 5 2 21 \n", "\n", " state_A state_B \n", "44 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "45 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "46 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "47 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "48 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "118 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "119 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "120 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "121 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "122 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "200 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "201 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "202 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "203 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "204 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "262 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "263 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "264 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "265 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "266 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "324 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "325 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "326 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "327 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "328 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "362 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "363 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "364 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "365 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "366 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr " ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 4-3. histids\n", "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_A', 'state_B'])\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", " new_histid.at[i, 'node_id'] = child_id\n", " new_histids.append(new_histid)\n", "import pandas as pd\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_A', 'state_B']]\n", "self.histids.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "self.set_timepoints()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [], "source": [ "df = self.sigtable.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 103, "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
16175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
17175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
18175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
19175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
20175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
21175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
22175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
23175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
24175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
25175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
26175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
27175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
28175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
29175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
30175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704415950 1 1 8 4 43 \n", "17 175 i0 1704415950 2 2 7 3 45 \n", "18 175 i0 1704415950 3 3 6 1 33 \n", "19 175 i0 1704415950 3 4 6 2 22 \n", "20 175 i0 1704415950 4 4 5 2 37 \n", "21 175 i0 1704416178 1 1 8 4 54 \n", "22 175 i0 1704416178 2 2 7 3 57 \n", "23 175 i0 1704416178 3 3 6 1 42 \n", "24 175 i0 1704416178 3 4 6 2 28 \n", "25 175 i0 1704416178 4 4 5 2 47 \n", "26 175 i0 1704416358 1 1 8 4 43 \n", "27 175 i0 1704416358 2 2 7 3 45 \n", "28 175 i0 1704416358 3 3 6 1 33 \n", "29 175 i0 1704416358 3 4 6 2 22 \n", "30 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state_A state_B phase_sumo \n", "16 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "17 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "18 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "21 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "22 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "23 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "26 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "27 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "28 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 " ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 104, "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
16175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
17175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
18175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
19175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
20175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
21175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
22175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
23175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
24175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
25175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
26175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
27175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
28175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
29175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
30175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704415950 1 1 8 4 43 \n", "17 175 i0 1704415950 2 2 7 3 45 \n", "18 175 i0 1704415950 3 3 6 1 33 \n", "19 175 i0 1704415950 3 4 6 2 22 \n", "20 175 i0 1704415950 4 4 5 2 37 \n", "21 175 i0 1704416178 1 1 8 4 54 \n", "22 175 i0 1704416178 2 2 7 3 57 \n", "23 175 i0 1704416178 3 3 6 1 42 \n", "24 175 i0 1704416178 3 4 6 2 28 \n", "25 175 i0 1704416178 4 4 5 2 47 \n", "26 175 i0 1704416358 1 1 8 4 43 \n", "27 175 i0 1704416358 2 2 7 3 45 \n", "28 175 i0 1704416358 3 3 6 1 33 \n", "29 175 i0 1704416358 3 4 6 2 22 \n", "30 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state_A state_B phase_sumo \n", "16 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "17 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "18 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "21 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "22 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "23 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "26 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "27 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "28 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 " ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = self.sigtable.query('node_id==@Node_id')\n", "df" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nonode_idstart_unixphas_Aphas_Bdurationstate_Astate_Bphase_sumored_Ared_Byellow_Ayellow_B
16175i017044159501143grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
17175i017044159502245grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
18175i017044159503333grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
19175i017044159503422grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
20175i017044159504437grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
21175i017044161781154grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
22175i017044161782257grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
23175i017044161783342grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
24175i017044161783428grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
25175i017044161784447grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
26175i017044163581143grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
27175i017044163582245grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
28175i017044163583333grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
29175i017044163583422grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
30175i017044163584437grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B duration state_A \\\n", "16 175 i0 1704415950 1 1 43 grrrgrrrgGGGGrgrr \n", "17 175 i0 1704415950 2 2 45 grrGgrrrgrrrrrgrr \n", "18 175 i0 1704415950 3 3 33 grrrgGGrgrrrrrgrr \n", "19 175 i0 1704415950 3 4 22 grrrgGGrgrrrrrgrr \n", "20 175 i0 1704415950 4 4 37 grrrgrrrgrrrrrgrG \n", "21 175 i0 1704416178 1 1 54 grrrgrrrgGGGGrgrr \n", "22 175 i0 1704416178 2 2 57 grrGgrrrgrrrrrgrr \n", "23 175 i0 1704416178 3 3 42 grrrgGGrgrrrrrgrr \n", "24 175 i0 1704416178 3 4 28 grrrgGGrgrrrrrgrr \n", "25 175 i0 1704416178 4 4 47 grrrgrrrgrrrrrgrG \n", "26 175 i0 1704416358 1 1 43 grrrgrrrgGGGGrgrr \n", "27 175 i0 1704416358 2 2 45 grrGgrrrgrrrrrgrr \n", "28 175 i0 1704416358 3 3 33 grrrgGGrgrrrrrgrr \n", "29 175 i0 1704416358 3 4 22 grrrgGGrgrrrrrgrr \n", "30 175 i0 1704416358 4 4 37 grrrgrrrgrrrrrgrG \n", "\n", " state_B phase_sumo red_A red_B yellow_A yellow_B \n", "16 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "17 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "18 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "19 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "20 grrrgrrrgrrrrrgGr 4 1 1 4 4 \n", "21 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "22 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "23 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "24 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "25 grrrgrrrgrrrrrgGr 4 1 1 4 4 \n", "26 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "27 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "28 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "29 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "30 grrrgrrrgrrrrrgGr 4 1 1 4 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i, row in df.iterrows():\n", " inter_no = row.inter_no\n", " phas_A = row.phas_A\n", " phas_B = row.phas_B\n", " start_unix = row.start_unix\n", " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n", " red_A = prow[f'red_A{phas_A}']\n", " yellow_A = prow[f'yellow_A{phas_A}']\n", " red_B = prow[f'red_B{phas_B}']\n", " yellow_B = prow[f'yellow_B{phas_B}']\n", " df.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n", "df = df.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n", " 'phas_A':str, 'phas_B':str})\n", "df = df.drop(['move_A','move_B'], axis=1)\n", "display(df)" ] }, { "cell_type": "code", "execution_count": 110, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df[['phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']]\n", "df_B = df[['phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']]\n", "df_A = df_A.reset_index(drop=True)\n", "df_A" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'aa'" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_y = ''\n", "state_y += 'a'\n", "state_y += 'a'\n", "state_y" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "grrrgrrrgGGGGrgrr\n", "grrrgrrrgrrrrrgrr\n", "grrrgrrrgyyyyrgrr\n", "grrGgrrrgrrrrrgrr\n", "grrrgrrrgrrrrrgrr\n", "grrygrrrgrrrrrgrr\n", "grrrgGGrgrrrrrgrr\n" ] } ], "source": [ "pre_state = 'grrrgrrrgGGGGrgrr'\n", "cur_state = 'grrGgrrrgrrrrrgrr'\n", "nex_state = 'grrrgGGrgrrrrrgrr'\n", "\n", "def get_red(pre_state:str, cur_state:str):\n", " assert len(pre_state) == len(cur_state), \"cur_state, nex_state의 길이가 서로 다릅니다.\"\n", " state_r = ''\n", " for c, n in zip(pre_state, cur_state):\n", " if c == n:\n", " state_r += c\n", " elif (c == 'r') and (n == 'G'):\n", " state_r += 'r'\n", " elif (c == 'G') and (n == 'r'):\n", " state_r += 'r'\n", " else:\n", " raise ValueError(f\"예상치 못한 신호조합: current={c}, next={n}\")\n", " return state_r\n", "\n", "def get_yellow(cur_state:str, nex_state:str):\n", " assert len(cur_state) == len(nex_state), \"cur_state, nex_state의 길이가 서로 다릅니다.\"\n", " state_y = ''\n", " for c, n in zip(cur_state, nex_state):\n", " if c == n:\n", " state_y += c\n", " elif (c == 'r') and (n == 'G'):\n", " state_y += 'r'\n", " elif (c == 'G') and (n == 'r'):\n", " state_y += 'y'\n", " else:\n", " raise ValueError(f\"예상치 못한 신호조합: current={c}, next={n}\")\n", " return state_y\n", "print(pre_state)\n", "print(get_red(pre_state, cur_state))\n", "print(get_yellow(pre_state, cur_state))\n", "print(cur_state)\n", "print(get_red(cur_state, nex_state))\n", "print(get_yellow(cur_state, nex_state))\n", "print(nex_state)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [], "source": [ "df_A = df_A.reset_index(drop=True)\n", "df_B = df_B.reset_index(drop=True)" ] }, { "cell_type": "code", "execution_count": 171, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 171, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
durationdurationdurationdurationphas_Aphas_Bred_Ared_Bstate_Astate_Byellow_Ayellow_B
0434343431111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
1454545452211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
2333333333311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
3222222223411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
4373737374411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
5545454541111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
6575757572211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
7424242423311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
8282828283411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
9474747474411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
10434343431111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
11454545452211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
12333333333311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
13222222223411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
14373737374411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
\n", "
" ], "text/plain": [ " duration duration duration duration phas_A phas_B red_A red_B \\\n", "0 43 43 43 43 1 1 1 1 \n", "1 45 45 45 45 2 2 1 1 \n", "2 33 33 33 33 3 3 1 1 \n", "3 22 22 22 22 3 4 1 1 \n", "4 37 37 37 37 4 4 1 1 \n", "5 54 54 54 54 1 1 1 1 \n", "6 57 57 57 57 2 2 1 1 \n", "7 42 42 42 42 3 3 1 1 \n", "8 28 28 28 28 3 4 1 1 \n", "9 47 47 47 47 4 4 1 1 \n", "10 43 43 43 43 1 1 1 1 \n", "11 45 45 45 45 2 2 1 1 \n", "12 33 33 33 33 3 3 1 1 \n", "13 22 22 22 22 3 4 1 1 \n", "14 37 37 37 37 4 4 1 1 \n", "\n", " state_A state_B yellow_A yellow_B \n", "0 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "1 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "2 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "3 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "4 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 \n", "5 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "6 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "7 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "8 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "9 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 \n", "10 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "11 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "12 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "13 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "14 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 " ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.concat([df_A, df_B], axis=1)\n", "df[sorted(df.columns)]" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "phas_A 3\n", "duration 22\n", "state_A grrrgGGrgrrrrrgrr\n", "red_A 1\n", "yellow_A 4\n", "Name: 13, dtype: object" ] }, "execution_count": 218, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pre" ] }, { "cell_type": "code", "execution_count": 258, "metadata": {}, "outputs": [], "source": [ "import time\n", "\n", "now = time.time()\n", "def cumulate(df, alph):\n", " df = df.reset_index(drop=True)\n", "\n", " DF = []\n", " pre = pd.Series({f'phas_{alph}':None})\n", "\n", " start_time = 0\n", " elapsed = 0\n", " for i, cur in df.iterrows():\n", " \n", " # pre, nex\n", " if i != 0:\n", " pre = df.iloc[i-1]\n", " \n", " if i != len(df) - 1:\n", " nex = df.iloc[i+1]\n", " \n", " # duration\n", " if cur[f'phas_{alph}'] == nex[f'phas_{alph}']:\n", " continue\n", " if cur[f'phas_{alph}'] == pre[f'phas_{alph}']:\n", " duration = cur.duration + pre.duration\n", " else:\n", " duration = cur.duration\n", " start_times = []\n", " states = []\n", " phases = []\n", "\n", " # red\n", " if i != 0:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(get_red(pre[f'state_{alph}'], cur[f'state_{alph}']))\n", " phases.append(f'{cur[f\"phas_{alph}\"]}r')\n", "\n", " elapsed = cur[f'red_{alph}']\n", "\n", " # green\n", " if i == 0:\n", " start_time = 0\n", " else:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(cur[f'state_{alph}'])\n", " phases.append(f'{cur[f\"phas_{alph}\"]}g')\n", " if i == 0:\n", " elapsed = duration - cur[f'yellow_{alph}']\n", " else:\n", " elapsed = duration - cur[f'yellow_{alph}'] - cur[f'red_{alph}']\n", "\n", " # yellow\n", " if i != len(df) - 1:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(get_yellow(cur[f'state_{alph}'], nex[f'state_{alph}']))\n", " phases.append(f'{cur[f\"phas_{alph}\"]}y')\n", " elapsed = cur[f'yellow_{alph}']\n", " df_ = pd.DataFrame({'start_time':start_times, f'phas_{alph}':phases, f'state_{alph}':states})\n", " DF.append(df_)\n", " DF = pd.concat(DF).reset_index(drop=True)\n", " return DF\n", "df_a = cumulate(df_A, 'A')\n", "df_b = cumulate(df_B, 'B')" ] }, { "cell_type": "code", "execution_count": 262, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrGgrrrgrrrrrgrr
4842ygrrygrrrgrrrrrgrr
5883rgrrrgGGrgrrrrrgrr
6893ggrrrgGGrgrrrrrgrr
71393ygrrrgyyrgrrrrrgrr
81434rgrrrgrrrgrrrrrgrr
91444ggrrrgrrrgrrrrrgrG
101764ygrrrgrrrgrrrrrgry
111801rgrrrgrrrgrrrrrgrr
121811ggrrrgrrrgGGGGrgrr
132301ygrrrgrrrgyyyyrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrGgrrrgrrrrrgrr
162872ygrrygrrrgrrrrrgrr
172913rgrrrgGGrgrrrrrgrr
182923ggrrrgGGrgrrrrrgrr
193573ygrrrgyyrgrrrrrgrr
203614rgrrrgrrrgrrrrrgrr
213624ggrrrgrrrgrrrrrgrG
224044ygrrrgrrrgrrrrrgry
234081rgrrrgrrrgrrrrrgrr
244091ggrrrgrrrgGGGGrgrr
254471ygrrrgrrrgyyyyrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrGgrrrgrrrrrgrr
284922ygrrygrrrgrrrrrgrr
294963rgrrrgGGrgrrrrrgrr
304973ggrrrgGGrgrrrrrgrr
315473ygrrrgyyrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrGgrrrgrrrrrgrr\n", "4 84 2y grrygrrrgrrrrrgrr\n", "5 88 3r grrrgGGrgrrrrrgrr\n", "6 89 3g grrrgGGrgrrrrrgrr\n", "7 139 3y grrrgyyrgrrrrrgrr\n", "8 143 4r grrrgrrrgrrrrrgrr\n", "9 144 4g grrrgrrrgrrrrrgrG\n", "10 176 4y grrrgrrrgrrrrrgry\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g grrrgrrrgGGGGrgrr\n", "13 230 1y grrrgrrrgyyyyrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrGgrrrgrrrrrgrr\n", "16 287 2y grrygrrrgrrrrrgrr\n", "17 291 3r grrrgGGrgrrrrrgrr\n", "18 292 3g grrrgGGrgrrrrrgrr\n", "19 357 3y grrrgyyrgrrrrrgrr\n", "20 361 4r grrrgrrrgrrrrrgrr\n", "21 362 4g grrrgrrrgrrrrrgrG\n", "22 404 4y grrrgrrrgrrrrrgry\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g grrrgrrrgGGGGrgrr\n", "25 447 1y grrrgrrrgyyyyrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrGgrrrgrrrrrgrr\n", "28 492 2y grrygrrrgrrrrrgrr\n", "29 496 3r grrrgGGrgrrrrrgrr\n", "30 497 3g grrrgGGrgrrrrrgrr\n", "31 547 3y grrrgyyrgrrrrrgrr" ] }, "execution_count": 262, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_a" ] }, { "cell_type": "code", "execution_count": 263, "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", "
start_timephas_Bstate_B
001ggGGrgrrrgrrrrrgrr
1391ygyyrgrrrgrrrrrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrrgrrrgrrrrGgrr
4842ygrrrgrrrgrrrrygrr
5883rgrrrgrrrgrrrrrgrr
6893ggrrrgrrGgrrrrrgrr
71173ygrrrgrrygrrrrrgrr
81214rgrrrgrrrgrrrrrgGr
91224ggrrrgrrrgrrrrrgGr
101764ygrrrgrrrgrrrrrgyr
111801rgrrrgrrrgrrrrrgrr
121811ggGGrgrrrgrrrrrgrr
132301ygyyrgrrrgrrrrrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrrgrrrgrrrrGgrr
162872ygrrrgrrrgrrrrygrr
172913rgrrrgrrrgrrrrrgrr
182923ggrrrgrrGgrrrrrgrr
193293ygrrrgrrygrrrrrgrr
203334rgrrrgrrrgrrrrrgGr
213344ggrrrgrrrgrrrrrgGr
224044ygrrrgrrrgrrrrrgyr
234081rgrrrgrrrgrrrrrgrr
244091ggGGrgrrrgrrrrrgrr
254471ygyyrgrrrgrrrrrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrrgrrrgrrrrGgrr
284922ygrrrgrrrgrrrrygrr
294963rgrrrgrrrgrrrrrgrr
304973ggrrrgrrGgrrrrrgrr
315253ygrrrgrrygrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_B state_B\n", "0 0 1g gGGrgrrrgrrrrrgrr\n", "1 39 1y gyyrgrrrgrrrrrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrrgrrrgrrrrGgrr\n", "4 84 2y grrrgrrrgrrrrygrr\n", "5 88 3r grrrgrrrgrrrrrgrr\n", "6 89 3g grrrgrrGgrrrrrgrr\n", "7 117 3y grrrgrrygrrrrrgrr\n", "8 121 4r grrrgrrrgrrrrrgGr\n", "9 122 4g grrrgrrrgrrrrrgGr\n", "10 176 4y grrrgrrrgrrrrrgyr\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g gGGrgrrrgrrrrrgrr\n", "13 230 1y gyyrgrrrgrrrrrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrrgrrrgrrrrGgrr\n", "16 287 2y grrrgrrrgrrrrygrr\n", "17 291 3r grrrgrrrgrrrrrgrr\n", "18 292 3g grrrgrrGgrrrrrgrr\n", "19 329 3y grrrgrrygrrrrrgrr\n", "20 333 4r grrrgrrrgrrrrrgGr\n", "21 334 4g grrrgrrrgrrrrrgGr\n", "22 404 4y grrrgrrrgrrrrrgyr\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g gGGrgrrrgrrrrrgrr\n", "25 447 1y gyyrgrrrgrrrrrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrrgrrrgrrrrGgrr\n", "28 492 2y grrrgrrrgrrrrygrr\n", "29 496 3r grrrgrrrgrrrrrgrr\n", "30 497 3g grrrgrrGgrrrrrgrr\n", "31 525 3y grrrgrrygrrrrrgrr" ] }, "execution_count": 263, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_b" ] }, { "cell_type": "code", "execution_count": 302, "metadata": {}, "outputs": [], "source": [ "pairs = set()\n", "pairs.add(2)" ] }, { "cell_type": "code", "execution_count": 304, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('G', 'r'), ('g', 'g'), ('r', 'G'), ('r', 'r'), ('r', 'y'), ('y', 'r')}" ] }, "execution_count": 304, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pairs = set()\n", "for A, B in zip(df['state_A'], df['state_B']):\n", " for a, b in zip(A, B):\n", " pairs.add((a,b))\n", "pairs" ] }, { "cell_type": "code", "execution_count": 311, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
start_timephasestate_Astate_Bdurationstate
001g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr39gGGrgrrrgGGGGrgrr
1391y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
2432r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
3442g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr40grrGgrrrgrrrrGgrr
4842y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
5883r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
6893g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr28grrrgGGGgrrrrrgrr
71173g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr4grrrgGGygrrrrrgrr
81213g_4rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgGGrgrrrrrgGr
91223g_4ggrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr17grrrgGGrgrrrrrgGr
101393y_4ggrrrgyyrgrrrrrgrrgrrrgrrrgrrrrrgGr4grrrgyyrgrrrrrgGr
111434r_4ggrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgrrrgrrrrrgGr
121444g_4ggrrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr32grrrgrrrgrrrrrgGG
131764y_4ygrrrgrrrgrrrrrgrygrrrgrrrgrrrrrgyr4grrrgrrrgrrrrrgyy
141801r_1rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
151811g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr49gGGrgrrrgGGGGrgrr
162301y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
172342r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
182352g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr52grrGgrrrgrrrrGgrr
192872y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
202913r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
212923g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr37grrrgGGGgrrrrrgrr
223293g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr4grrrgGGygrrrrrgrr
233333g_4rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgGGrgrrrrrgGr
243343g_4ggrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr23grrrgGGrgrrrrrgGr
253573y_4ggrrrgyyrgrrrrrgrrgrrrgrrrgrrrrrgGr4grrrgyyrgrrrrrgGr
263614r_4ggrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgrrrgrrrrrgGr
273624g_4ggrrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr42grrrgrrrgrrrrrgGG
284044y_4ygrrrgrrrgrrrrrgrygrrrgrrrgrrrrrgyr4grrrgrrrgrrrrrgyy
294081r_1rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
304091g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr38gGGrgrrrgGGGGrgrr
314471y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
324512r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
334522g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr40grrGgrrrgrrrrGgrr
344922y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
354963r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
364973g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr28grrrgGGGgrrrrrgrr
375253g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr22grrrgGGygrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phase state_A state_B duration \\\n", "0 0 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 39 \n", "1 39 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "2 43 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "3 44 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 40 \n", "4 84 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "5 88 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "6 89 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 28 \n", "7 117 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 4 \n", "8 121 3g_4r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "9 122 3g_4g grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 17 \n", "10 139 3y_4g grrrgyyrgrrrrrgrr grrrgrrrgrrrrrgGr 4 \n", "11 143 4r_4g grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "12 144 4g_4g grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 32 \n", "13 176 4y_4y grrrgrrrgrrrrrgry grrrgrrrgrrrrrgyr 4 \n", "14 180 1r_1r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "15 181 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 49 \n", "16 230 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "17 234 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "18 235 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 52 \n", "19 287 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "20 291 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "21 292 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 37 \n", "22 329 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 4 \n", "23 333 3g_4r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "24 334 3g_4g grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 23 \n", "25 357 3y_4g grrrgyyrgrrrrrgrr grrrgrrrgrrrrrgGr 4 \n", "26 361 4r_4g grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "27 362 4g_4g grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 42 \n", "28 404 4y_4y grrrgrrrgrrrrrgry grrrgrrrgrrrrrgyr 4 \n", "29 408 1r_1r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "30 409 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 38 \n", "31 447 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "32 451 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "33 452 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 40 \n", "34 492 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "35 496 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "36 497 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 28 \n", "37 525 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 22 \n", "\n", " state \n", "0 gGGrgrrrgGGGGrgrr \n", "1 gyyrgrrrgyyyyrgrr \n", "2 grrrgrrrgrrrrrgrr \n", "3 grrGgrrrgrrrrGgrr \n", "4 grrygrrrgrrrrygrr \n", "5 grrrgGGrgrrrrrgrr \n", "6 grrrgGGGgrrrrrgrr \n", "7 grrrgGGygrrrrrgrr \n", "8 grrrgGGrgrrrrrgGr \n", "9 grrrgGGrgrrrrrgGr \n", "10 grrrgyyrgrrrrrgGr \n", "11 grrrgrrrgrrrrrgGr \n", "12 grrrgrrrgrrrrrgGG \n", "13 grrrgrrrgrrrrrgyy \n", "14 grrrgrrrgrrrrrgrr \n", "15 gGGrgrrrgGGGGrgrr \n", "16 gyyrgrrrgyyyyrgrr \n", "17 grrrgrrrgrrrrrgrr \n", "18 grrGgrrrgrrrrGgrr \n", "19 grrygrrrgrrrrygrr \n", "20 grrrgGGrgrrrrrgrr \n", "21 grrrgGGGgrrrrrgrr \n", "22 grrrgGGygrrrrrgrr \n", "23 grrrgGGrgrrrrrgGr \n", "24 grrrgGGrgrrrrrgGr \n", "25 grrrgyyrgrrrrrgGr \n", "26 grrrgrrrgrrrrrgGr \n", "27 grrrgrrrgrrrrrgGG \n", "28 grrrgrrrgrrrrrgyy \n", "29 grrrgrrrgrrrrrgrr \n", "30 gGGrgrrrgGGGGrgrr \n", "31 gyyrgrrrgyyyyrgrr \n", "32 grrrgrrrgrrrrrgrr \n", "33 grrGgrrrgrrrrGgrr \n", "34 grrygrrrgrrrrygrr \n", "35 grrrgGGrgrrrrrgrr \n", "36 grrrgGGGgrrrrrgrr \n", "37 grrrgGGygrrrrrgrr " ] }, "execution_count": 311, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.merge(df_a, df_b, on='start_time', how='outer')\n", "df = df.sort_values(by='start_time').reset_index(drop=True)\n", "df[['phas_A', 'state_A']] = df[['phas_A', 'state_A']].fillna(method='ffill')\n", "df[['phas_B', 'state_B']] = df[['phas_B', 'state_B']].fillna(method='ffill')\n", "df['phase'] = df['phas_A'] + \"_\" + df['phas_B']\n", "df = df[['start_time', 'phase', 'state_A', 'state_B']]\n", "df['duration'] = df['start_time'].shift(-1) - df['start_time']\n", "df = df[:-1]\n", "df['duration'] = df['duration'].astype(int)\n", "for row in df.itertuples():\n", " state = ''\n", " for a, b, in zip(row.state_A, row.state_B):\n", " if a == 'r':\n", " state += b\n", " elif b == 'r':\n", " state += a\n", " elif a == b:\n", " state += a\n", " else:\n", " raise ValueError(f\"예상되지 않은 조합 발생: a={a}, b={b}\")\n", " df.at[row.Index, 'state'] = state\n", "df" ] }, { "cell_type": "code", "execution_count": 276, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 39, 43, 44, 84, 88, 89, 139, 143, 144, 176, 180, 181, 230, 234, 235, 287, 291, 292, 357, 361, 362, 404, 408, 409, 447, 451, 452, 492, 496, 497, 547]\n" ] } ], "source": [ "start_times = set.union(set(df_a.start_time.unique()), set(df_a.start_time.unique()))\n", "start_times = sorted(start_times)\n", "print(start_times)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df = df_a.copy()\n", "start_times_additional = set(df_b.start_time.unique()) - set(df_a.start_time.unique())\n", "for i, row in df.iterrows():\n", " st = row.start_time\n", " if st in start_times_additional:" ] }, { "cell_type": "code", "execution_count": 207, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrGgrrrgrrrrrgrr
4842ygrrygrrrgrrrrrgrr
5883rgrrrgGGrgrrrrrgrr
6893ggrrrgGGrgrrrrrgrr
71393ygrrrgyyrgrrrrrgrr
81434rgrrrgrrrgrrrrrgrr
91444ggrrrgrrrgrrrrrgrG
101764ygrrrgrrrgrrrrrgry
111801rgrrrgrrrgrrrrrgrr
121811ggrrrgrrrgGGGGrgrr
132301ygrrrgrrrgyyyyrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrGgrrrgrrrrrgrr
162872ygrrygrrrgrrrrrgrr
172913rgrrrgGGrgrrrrrgrr
182923ggrrrgGGrgrrrrrgrr
193573ygrrrgyyrgrrrrrgrr
203614rgrrrgrrrgrrrrrgrr
213624ggrrrgrrrgrrrrrgrG
224044ygrrrgrrrgrrrrrgry
234081rgrrrgrrrgrrrrrgrr
244091ggrrrgrrrgGGGGrgrr
254471ygrrrgrrrgyyyyrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrGgrrrgrrrrrgrr
284922ygrrygrrrgrrrrrgrr
294963rgrrrgGGrgrrrrrgrr
304973ggrrrgGGrgrrrrrgrr
315473ygrrrgyyrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrGgrrrgrrrrrgrr\n", "4 84 2y grrygrrrgrrrrrgrr\n", "5 88 3r grrrgGGrgrrrrrgrr\n", "6 89 3g grrrgGGrgrrrrrgrr\n", "7 139 3y grrrgyyrgrrrrrgrr\n", "8 143 4r grrrgrrrgrrrrrgrr\n", "9 144 4g grrrgrrrgrrrrrgrG\n", "10 176 4y grrrgrrrgrrrrrgry\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g grrrgrrrgGGGGrgrr\n", "13 230 1y grrrgrrrgyyyyrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrGgrrrgrrrrrgrr\n", "16 287 2y grrygrrrgrrrrrgrr\n", "17 291 3r grrrgGGrgrrrrrgrr\n", "18 292 3g grrrgGGrgrrrrrgrr\n", "19 357 3y grrrgyyrgrrrrrgrr\n", "20 361 4r grrrgrrrgrrrrrgrr\n", "21 362 4g grrrgrrrgrrrrrgrG\n", "22 404 4y grrrgrrrgrrrrrgry\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g grrrgrrrgGGGGrgrr\n", "25 447 1y grrrgrrrgyyyyrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrGgrrrgrrrrrgrr\n", "28 492 2y grrygrrrgrrrrrgrr\n", "29 496 3r grrrgGGrgrrrrrgrr\n", "30 497 3g grrrgGGrgrrrrrgrr\n", "31 547 3y grrrgyyrgrrrrrgrr" ] }, "execution_count": 207, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df_A.reset_index(drop=True)\n", "\n", "df_a = []\n", "\n", "start_time = 0\n", "elapsed = 0\n", "for i, cur in df_A.iterrows():\n", " \n", " # pre, nex\n", " if i != 0:\n", " pre = df_A.iloc[i-1]\n", " if i != len(df_A) - 1:\n", " nex = df_A.iloc[i+1]\n", " \n", " # duration\n", " if cur.phas_A == nex.phas_A:\n", " continue\n", " if cur.phas_A == pre.phas_A:\n", " duration = cur.duration + pre.duration\n", " else:\n", " duration = cur.duration\n", " start_times = []\n", " state_As = []\n", " phas_As = []\n", "\n", " # red\n", " if i != 0:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(get_red(pre.state_A, cur.state_A))\n", " phas_As.append(f'{cur.phas_A}r')\n", " elapsed = cur.red_A\n", " \n", " # green\n", " if i == 0:\n", " start_time = 0\n", " else:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(cur.state_A)\n", " phas_As.append(f'{cur.phas_A}g')\n", " if i == 0:\n", " elapsed = duration - cur.yellow_A\n", " else:\n", " elapsed = duration - cur.yellow_A - cur.red_A\n", " # yellow\n", " if i != len(df_A) - 1:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(get_yellow(cur.state_A, nex.state_A))\n", " phas_As.append(f'{cur.phas_A}y')\n", " elapsed = cur.yellow_A\n", " df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", " df_a.append(df_)\n", "df_a = pd.concat(df_a).reset_index(drop=True)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 152, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
0432rgrrrgrrrgrrrrrgrr
1442ggrrGgrrrgrrrrrgrr
2842ygrrygrrrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "0 43 2r grrrgrrrgrrrrrgrr\n", "1 44 2g grrGgrrrgrrrrrgrr\n", "2 84 2y grrygrrrgrrrrrgrr" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df_A.reset_index(drop=True)\n", "df_a = []\n", "\n", "###\n", "i = 0\n", "cur = df_A.iloc[i]\n", "nex = df_A.iloc[i+1]\n", "\n", "start_times = []\n", "state_As = []\n", "phas_As = []\n", "\n", "# green\n", "start_time = 0\n", "start_times.append(start_time)\n", "state_As.append(cur.state_A)\n", "phas_As.append(f'{cur.phas_A}g')\n", "elapsed = cur.duration - cur.yellow_A\n", "\n", "# yellow\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_yellow(cur.state_A, nex.state_A))\n", "phas_As.append(f'{cur.phas_A}y')\n", "elapsed = cur.yellow_A\n", "\n", "df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", "df_a.append(df_)\n", "\n", "###\n", "i = 1\n", "pre = df_A.iloc[i-1]\n", "cur = df_A.iloc[i]\n", "nex = df_A.iloc[i+1]\n", "\n", "start_times = []\n", "state_As = []\n", "phas_As = []\n", "\n", "# red\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_red(pre.state_A, cur.state_A))\n", "phas_As.append(f'{cur.phas_A}r')\n", "elapsed = cur.red_A\n", "\n", "# green\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(cur.state_A)\n", "phas_As.append(f'{cur.phas_A}g')\n", "\n", "elapsed = cur.duration - cur.yellow_A - cur.red_A\n", "\n", "# yellow\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_yellow(cur.state_A, nex.state_A))\n", "phas_As.append(f'{cur.phas_A}y')\n", "\n", "df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", "df_a.append(df_)\n", "\n", "df_a = pd.concat(df_a)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 153, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
phas_Astate_Astart_time
01ggrrrgrrrgGGGGrgrr0
\n", "
" ], "text/plain": [ " phas_A state_A start_time\n", "0 1g grrrgrrrgGGGGrgrr 0" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_a = pd.concat(df_a)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 83, "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", "
Unnamed: 0inter_nophas_Aphas_Bmove_Amove_B
001751184
111752273
221753361
331753462
441754452
\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no phas_A phas_B move_A move_B\n", "0 0 175 1 1 8 4\n", "1 1 175 2 2 7 3\n", "2 2 175 3 3 6 1\n", "3 3 175 3 4 6 2\n", "4 4 175 4 4 5 2" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.match1.query('inter_no==@inter_no')" ] }, { "cell_type": "code", "execution_count": 85, "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", "
Unnamed: 0inter_nonode_idphase_noring_typemove_nostate
00175i01A8grrrgrrrgGGGGrgrr
11175i01B4gGGrgrrrgrrrrrgrr
22175i02A7grrGgrrrgrrrrrgrr
33175i02B3grrrgrrrgrrrrGgrr
44175i03A6grrrgGGrgrrrrrgrr
55175i03B1grrrgrrGgrrrrrgrr
66175i04A5grrrgrrrgrrrrrgrG
77175i04B2grrrgrrrgrrrrrgGr
\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no node_id phase_no ring_type move_no \\\n", "0 0 175 i0 1 A 8 \n", "1 1 175 i0 1 B 4 \n", "2 2 175 i0 2 A 7 \n", "3 3 175 i0 2 B 3 \n", "4 4 175 i0 3 A 6 \n", "5 5 175 i0 3 B 1 \n", "6 6 175 i0 4 A 5 \n", "7 7 175 i0 4 B 2 \n", "\n", " state \n", "0 grrrgrrrgGGGGrgrr \n", "1 gGGrgrrrgrrrrrgrr \n", "2 grrGgrrrgrrrrrgrr \n", "3 grrrgrrrgrrrrGgrr \n", "4 grrrgGGrgrrrrrgrr \n", "5 grrrgrrGgrrrrrgrr \n", "6 grrrgrrrgrrrrrgrG \n", "7 grrrgrrrgrrrrrgGr " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.match6.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 23, "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", "
Unnamed: 0dura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7dura_A8dura_B1...red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8inter_no
0243455537000043...111111111175
\n", "

1 rows × 52 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 dura_A7 \\\n", "0 2 43 45 55 37 0 0 0 \n", "\n", " dura_A8 dura_B1 ... red_B4 red_A5 red_B5 red_A6 red_B6 red_A7 \\\n", "0 0 43 ... 1 1 1 1 1 1 \n", "\n", " red_B7 red_A8 red_B8 inter_no \n", "0 1 1 1 175 \n", "\n", "[1 rows x 52 columns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from datetime import datetime \n", "start_unix = self.sigtable.start_unix.iloc[0]\n", "self.load_prow(inter_no, start_unix)[1]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0inter_nostart_hourstart_minutedura_A1dura_A2dura_A3dura_A4dura_A5dura_A6...red_A4red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8
00175003739552900...1111111111
11175704042553300...1111111111
22175904345553700...1111111111
3317518304648554100...1111111111
\n", "

4 rows × 54 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no start_hour start_minute dura_A1 dura_A2 dura_A3 \\\n", "0 0 175 0 0 37 39 55 \n", "1 1 175 7 0 40 42 55 \n", "2 2 175 9 0 43 45 55 \n", "3 3 175 18 30 46 48 55 \n", "\n", " dura_A4 dura_A5 dura_A6 ... red_A4 red_B4 red_A5 red_B5 red_A6 \\\n", "0 29 0 0 ... 1 1 1 1 1 \n", "1 33 0 0 ... 1 1 1 1 1 \n", "2 37 0 0 ... 1 1 1 1 1 \n", "3 41 0 0 ... 1 1 1 1 1 \n", "\n", " red_B6 red_A7 red_B7 red_A8 red_B8 \n", "0 1 1 1 1 1 \n", "1 1 1 1 1 1 \n", "2 1 1 1 1 1 \n", "3 1 1 1 1 1 \n", "\n", "[4 rows x 54 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.plan.query('inter_no==@inter_no')" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4. 통합 테이블을 생성합니다.\n", "5. 신호를 생성합니다.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstatephase_sumo
16175i01704416358118443gGGrgrrrgGGGGrgrr0
17175i01704416358227345grrGgrrrgrrrrGgrr1
18175i01704416358336133grrrgGGGgrrrrrgrr2
19175i01704416358346222grrrgGGrgrrrrrgGr3
20175i01704416358445237grrrgrrrgrrrrrgGG4
21175i01704416538118443gGGrgrrrgGGGGrgrr0
22175i01704416538227345grrGgrrrgrrrrGgrr1
23175i01704416538336133grrrgGGGgrrrrrgrr2
24175i01704416538346222grrrgGGrgrrrrrgGr3
25175i01704416538445237grrrgrrrgrrrrrgGG4
26175i01704416718118443gGGrgrrrgGGGGrgrr0
27175i01704416718227345grrGgrrrgrrrrGgrr1
28175i01704416718336133grrrgGGGgrrrrrgrr2
29175i01704416718346222grrrgGGrgrrrrrgGr3
30175i01704416718445237grrrgrrrgrrrrrgGG4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704416358 1 1 8 4 43 \n", "17 175 i0 1704416358 2 2 7 3 45 \n", "18 175 i0 1704416358 3 3 6 1 33 \n", "19 175 i0 1704416358 3 4 6 2 22 \n", "20 175 i0 1704416358 4 4 5 2 37 \n", "21 175 i0 1704416538 1 1 8 4 43 \n", "22 175 i0 1704416538 2 2 7 3 45 \n", "23 175 i0 1704416538 3 3 6 1 33 \n", "24 175 i0 1704416538 3 4 6 2 22 \n", "25 175 i0 1704416538 4 4 5 2 37 \n", "26 175 i0 1704416718 1 1 8 4 43 \n", "27 175 i0 1704416718 2 2 7 3 45 \n", "28 175 i0 1704416718 3 3 6 1 33 \n", "29 175 i0 1704416718 3 4 6 2 22 \n", "30 175 i0 1704416718 4 4 5 2 37 \n", "\n", " state phase_sumo \n", "16 gGGrgrrrgGGGGrgrr 0 \n", "17 grrGgrrrgrrrrGgrr 1 \n", "18 grrrgGGGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgGG 4 \n", "21 gGGrgrrrgGGGGrgrr 0 \n", "22 grrGgrrrgrrrrGgrr 1 \n", "23 grrrgGGGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgGG 4 \n", "26 gGGrgrrrgGGGGrgrr 0 \n", "27 grrGgrrrgrrrrGgrr 1 \n", "28 grrrgGGGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgGG 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "self.make_histids()\n", "self.get_signals()\n", "display(self.sigtable.query('node_id==@Node_id'))" ] } ], "metadata": { "kernelspec": { "display_name": "sts", "language": "python", "name": "sts" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }