diff --git a/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb b/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb
index 33ae331fd..d6847e242 100644
--- a/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb
+++ b/Analysis/0307_red_yellow/0307_red_yellow_2.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -14,7 +14,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -7022,27 +7022,6 @@
" cmatch.loc[right_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id]"
]
},
- {
- "cell_type": "code",
- "execution_count": 229,
- "metadata": {},
- "outputs": [
- {
- "ename": "AttributeError",
- "evalue": "'DailyPreprocessor' object has no attribute 'matches'",
- "output_type": "error",
- "traceback": [
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[1;32mIn[229], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmatches\u001b[49m\n",
- "\u001b[1;31mAttributeError\u001b[0m: 'DailyPreprocessor' object has no attribute 'matches'"
- ]
- }
- ],
- "source": [
- "self.matches"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -7394,7 +7373,28 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "AttributeError",
+ "evalue": "'SignalGenerator' object has no attribute 'unodes'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munodes\u001b[49m\n",
+ "\u001b[1;31mAttributeError\u001b[0m: 'SignalGenerator' object has no attribute 'unodes'"
+ ]
+ }
+ ],
+ "source": [
+ "self.unodes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
@@ -7418,53 +7418,89 @@
" \n",
" \n",
" | \n",
+ " inter_no | \n",
" node_id | \n",
" start_unix | \n",
- " phase | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
" duration | \n",
- " state | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
"
\n",
" \n",
"
\n",
" \n",
" 0 | \n",
+ " 178 | \n",
" c30 | \n",
" 1704416690 | \n",
- " 1g_1g | \n",
- " 34 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
" rrrrrr | \n",
+ " rrrrrr | \n",
+ " 0 | \n",
"
\n",
" \n",
" 1 | \n",
+ " 178 | \n",
" c30 | \n",
" 1704416690 | \n",
- " 1y_1y | \n",
- " 4 | \n",
- " rrrrrr | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
+ " 1 | \n",
"
\n",
" \n",
" 2 | \n",
+ " 178 | \n",
" c30 | \n",
" 1704416690 | \n",
- " 2r_2r | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
" 2 | \n",
- " rrrrrr | \n",
"
\n",
" \n",
" 3 | \n",
+ " 178 | \n",
" c30 | \n",
" 1704416690 | \n",
- " 2g_2g | \n",
- " 33 | \n",
- " GGGGGG | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
+ " 3 | \n",
"
\n",
" \n",
" 4 | \n",
+ " 178 | \n",
" c30 | \n",
- " 1704416690 | \n",
- " 2y_2y | \n",
+ " 1704416860 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
" 4 | \n",
- " GGGGGG | \n",
+ " 38 | \n",
+ " rrrrrr | \n",
+ " rrrrrr | \n",
+ " 0 | \n",
"
\n",
" \n",
" ... | \n",
@@ -7473,237 +7509,2825 @@
" ... | \n",
" ... | \n",
" ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
"
\n",
" \n",
- " 51 | \n",
+ " 233 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2r_2g | \n",
- " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
" ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
"
\n",
" \n",
- " 52 | \n",
+ " 234 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2g_2g | \n",
- " 37 | \n",
- " ggggggggG | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
"
\n",
" \n",
- " 53 | \n",
+ " 235 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2y_2y | \n",
- " 4 | \n",
- " ggggggggy | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
"
\n",
" \n",
- " 54 | \n",
+ " 236 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 3r_3r | \n",
- " 2 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
" ggggggggr | \n",
+ " 3 | \n",
"
\n",
" \n",
- " 55 | \n",
+ " 237 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 3g_3g | \n",
- " 64 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
" ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
"
\n",
" \n",
"\n",
- "637 rows × 5 columns
\n",
+ "238 rows × 11 columns
\n",
""
],
"text/plain": [
- " node_id start_unix phase duration state\n",
- "0 c30 1704416690 1g_1g 34 rrrrrr\n",
- "1 c30 1704416690 1y_1y 4 rrrrrr\n",
- "2 c30 1704416690 2r_2r 2 rrrrrr\n",
- "3 c30 1704416690 2g_2g 33 GGGGGG\n",
- "4 c30 1704416690 2y_2y 4 GGGGGG\n",
- ".. ... ... ... ... ...\n",
- "51 u60 1704417140 2r_2g 2 ggggggggr\n",
- "52 u60 1704417140 2g_2g 37 ggggggggG\n",
- "53 u60 1704417140 2y_2y 4 ggggggggy\n",
- "54 u60 1704417140 3r_3r 2 ggggggggr\n",
- "55 u60 1704417140 3g_3g 64 ggggggggr\n",
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "0 178 c30 1704416690 1 1 8 4 38 \n",
+ "1 178 c30 1704416690 2 2 7 3 39 \n",
+ "2 178 c30 1704416690 3 3 5 2 43 \n",
+ "3 178 c30 1704416690 4 4 6 1 22 \n",
+ "4 178 c30 1704416860 1 1 8 4 38 \n",
+ ".. ... ... ... ... ... ... ... ... \n",
+ "233 210 u60 1704417140 1 1 6 18 28 \n",
+ "234 210 u60 1704417140 1 2 6 2 15 \n",
+ "235 210 u60 1704417140 2 2 5 2 43 \n",
+ "236 210 u60 1704417140 3 3 7 4 70 \n",
+ "237 210 u60 1704417140 4 4 8 3 24 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "0 rrrrrr rrrrrr 0 \n",
+ "1 GGGrrr rrrGGG 1 \n",
+ "2 GGGrrr rrrGGG 2 \n",
+ "3 GGGrrr rrrGGG 3 \n",
+ "4 rrrrrr rrrrrr 0 \n",
+ ".. ... ... ... \n",
+ "233 ggggggggr ggggggggr 0 \n",
+ "234 ggggggggr ggggggggr 1 \n",
+ "235 ggggggggG ggggggggr 2 \n",
+ "236 ggggggggr ggggggggr 3 \n",
+ "237 ggggggggr ggggggggr 4 \n",
"\n",
- "[637 rows x 5 columns]"
+ "[238 rows x 11 columns]"
]
},
- "execution_count": 9,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "self.SIGTABLE"
+ "self.sigtable"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self = DailyPreprocessor()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. 데이터를 로드합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
+ "1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
+ "2. 중간산출물을 생성합니다.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:14<00:00, 1177.84it/s]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2-1. 매칭 테이블들을 생성했습니다.\n",
+ "2-2. 비보호우회전(g)을 배정했습니다.\n",
+ "2-3. 직진 및 좌회전(G)을 배정했습니다.\n",
+ "2-2. node2num_cycles.json를 저장했습니다.\n",
+ "3. 이슈사항을 저장합니다.\n"
+ ]
+ }
+ ],
+ "source": [
+ "self.main()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " node_id | \n",
- " start_unix | \n",
- " phase | \n",
- " duration | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
+ "text/plain": [
+ "['u00', 'u20', 'u30', 'u31', 'u32', 'u60']"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.uturn_ids"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "uid2uindex = {}\n",
+ "for uid in self.uturn_ids:\n",
+ " states = self.match6[self.match6.node_id==uid].state.unique()\n",
+ " for state in states:\n",
+ " if 'G' in state:\n",
+ " index = state.index('G')\n",
+ " uid2uindex[uid] = index\n",
+ " break"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'u00': 4, 'u20': 2, 'u30': 4, 'u31': 4, 'u32': 7, 'u60': 8}"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "uid2uindex"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " phase_no | \n",
+ " ring_type | \n",
+ " move_no | \n",
+ " state | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 62 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " ggggGggg | \n",
+ "
\n",
+ " \n",
+ " 63 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 64 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 7 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 65 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 3 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 66 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 5 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 67 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 2 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 68 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 6 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ " 69 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 1 | \n",
+ " ggggrggg | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id phase_no ring_type move_no state\n",
+ "62 178 u31 1 A 8 ggggGggg\n",
+ "63 178 u31 1 B 4 ggggrggg\n",
+ "64 178 u31 2 A 7 ggggrggg\n",
+ "65 178 u31 2 B 3 ggggrggg\n",
+ "66 178 u31 3 A 5 ggggrggg\n",
+ "67 178 u31 3 B 2 ggggrggg\n",
+ "68 178 u31 4 A 6 ggggrggg\n",
+ "69 178 u31 4 B 1 ggggrggg"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "self.match6[self.match6.node_id=='u31']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.match6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. 데이터를 준비합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "2. 신호이력 테이블을 변환합니다.\n",
+ "3. 이동류정보 테이블을 변환합니다.\n",
+ "4. 통합 테이블을 생성합니다.\n",
+ "5. 신호를 생성합니다.\n",
+ "6. 이슈사항을 저장합니다.\n",
+ "(1) 0:00:00.063416\n",
+ "(1-1) 0:00:00.011400\n",
+ "(1-2) 0:00:00.028645\n",
+ "(1-3) 0:00:00\n",
+ "(1-4) 0:00:00\n",
+ "(1-5) 0:00:00.023371\n",
+ "(2) 0:00:00.327466\n",
+ "(2-1) 0:00:00.079160\n",
+ "(2-2) 0:00:00.229118\n",
+ "(2-3) 0:00:00.019188\n",
+ "(3) 0:00:00.271045\n",
+ "(3-1) 0:00:00.252066\n",
+ "(3-2) 0:00:00.018979\n",
+ "(4) 0:00:00.176595\n",
+ "(4-1) 0:00:00\n",
+ "(4-2) 0:00:00.019843\n",
+ "(4-2) 0:00:00.156752\n",
+ "(5) 0:00:00.649060\n",
+ "(5-1) 0:00:00.010529\n",
+ "(5-2) 0:00:00.634530\n",
+ "(5-3) 0:00:00.004001\n",
+ "(6) 0:00:00.000928\n",
+ "total time : 0:00:01.488510\n"
+ ]
+ }
+ ],
+ "source": [
+ "self = SignalGenerator()\n",
+ "self.main()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
" 0 | \n",
+ " 178 | \n",
" c30 | \n",
- " 1704416690 | \n",
- " 1g_1g | \n",
- " 34 | \n",
+ " 1704419070 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " rrrrrr | \n",
" rrrrrr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 178 | \n",
+ " c30 | \n",
+ " 1704419070 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 178 | \n",
+ " c30 | \n",
+ " 1704419070 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " c30 | \n",
+ " 1704419070 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " GGGrrr | \n",
+ " rrrGGG | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 178 | \n",
+ " c30 | \n",
+ " 1704419240 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " rrrrrr | \n",
+ " rrrrrr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 233 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 234 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 235 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 236 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 237 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
238 rows × 11 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "0 178 c30 1704419070 1 1 8 4 38 \n",
+ "1 178 c30 1704419070 2 2 7 3 39 \n",
+ "2 178 c30 1704419070 3 3 5 2 43 \n",
+ "3 178 c30 1704419070 4 4 6 1 22 \n",
+ "4 178 c30 1704419240 1 1 8 4 38 \n",
+ ".. ... ... ... ... ... ... ... ... \n",
+ "233 210 u60 1704419480 1 1 6 18 28 \n",
+ "234 210 u60 1704419480 1 2 6 2 15 \n",
+ "235 210 u60 1704419480 2 2 5 2 43 \n",
+ "236 210 u60 1704419480 3 3 7 4 70 \n",
+ "237 210 u60 1704419480 4 4 8 3 24 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "0 rrrrrr rrrrrr 0 \n",
+ "1 GGGrrr rrrGGG 1 \n",
+ "2 GGGrrr rrrGGG 2 \n",
+ "3 GGGrrr rrrGGG 3 \n",
+ "4 rrrrrr rrrrrr 0 \n",
+ ".. ... ... ... \n",
+ "233 ggggggggr ggggggggr 0 \n",
+ "234 ggggggggr ggggggggr 1 \n",
+ "235 ggggggggG ggggggggr 2 \n",
+ "236 ggggggggr ggggggggr 3 \n",
+ "237 ggggggggr ggggggggr 4 \n",
+ "\n",
+ "[238 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.sigtable"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 139 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704419060 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 140 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704419060 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 45 | \n",
+ " ggggGgggg | \n",
+ " ggggrgggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 141 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704419060 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 33 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 142 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704419060 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 22 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 143 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704419060 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 37 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 233 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 234 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 235 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 236 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 237 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704419480 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
99 rows × 11 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "139 175 u00 1704419060 1 1 8 4 43 \n",
+ "140 175 u00 1704419060 2 2 7 3 45 \n",
+ "141 175 u00 1704419060 3 3 6 1 33 \n",
+ "142 175 u00 1704419060 3 4 6 2 22 \n",
+ "143 175 u00 1704419060 4 4 5 2 37 \n",
+ ".. ... ... ... ... ... ... ... ... \n",
+ "233 210 u60 1704419480 1 1 6 18 28 \n",
+ "234 210 u60 1704419480 1 2 6 2 15 \n",
+ "235 210 u60 1704419480 2 2 5 2 43 \n",
+ "236 210 u60 1704419480 3 3 7 4 70 \n",
+ "237 210 u60 1704419480 4 4 8 3 24 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "139 ggggrgggg ggggrgggg 0 \n",
+ "140 ggggGgggg ggggrgggg 1 \n",
+ "141 ggggrgggg ggggrgggg 2 \n",
+ "142 ggggrgggg ggggrgggg 3 \n",
+ "143 ggggrgggg ggggrgggg 4 \n",
+ ".. ... ... ... \n",
+ "233 ggggggggr ggggggggr 0 \n",
+ "234 ggggggggr ggggggggr 1 \n",
+ "235 ggggggggG ggggggggr 2 \n",
+ "236 ggggggggr ggggggggr 3 \n",
+ "237 ggggggggr ggggggggr 4 \n",
+ "\n",
+ "[99 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.sigtable[self.sigtable.node_id.isin(self.uturn_ids)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 1\n",
+ "xbcd\n",
+ "1 2\n",
+ "axcd\n",
+ "2 3\n",
+ "abxd\n",
+ "3 4\n",
+ "abcx\n"
+ ]
+ }
+ ],
+ "source": [
+ "A = 'abcd'\n",
+ "for i in range(len(A)):\n",
+ " print(i, i+1)\n",
+ " print(A[:i] + 'x' + A[i+1:])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self = SignalGenerator()\n",
+ "self.main()\n",
+ "import numpy as np\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 139 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704416900 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 140 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704416900 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 45 | \n",
+ " ggggGgggg | \n",
+ " ggggrgggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 141 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704416900 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 33 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 142 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704416900 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 22 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 143 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704416900 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 37 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 144 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417080 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 145 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417080 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 45 | \n",
+ " ggggGgggg | \n",
+ " ggggrgggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 146 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417080 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 33 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 147 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417080 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 22 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 148 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417080 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 37 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 149 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417260 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 150 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417260 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 45 | \n",
+ " ggggGgggg | \n",
+ " ggggrgggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 151 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417260 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 33 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 152 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417260 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 22 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 153 | \n",
+ " 175 | \n",
+ " u00 | \n",
+ " 1704417260 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 37 | \n",
+ " ggggrgggg | \n",
+ " ggggrgggg | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "139 175 u00 1704416900 1 1 8 4 43 \n",
+ "140 175 u00 1704416900 2 2 7 3 45 \n",
+ "141 175 u00 1704416900 3 3 6 1 33 \n",
+ "142 175 u00 1704416900 3 4 6 2 22 \n",
+ "143 175 u00 1704416900 4 4 5 2 37 \n",
+ "144 175 u00 1704417080 1 1 8 4 43 \n",
+ "145 175 u00 1704417080 2 2 7 3 45 \n",
+ "146 175 u00 1704417080 3 3 6 1 33 \n",
+ "147 175 u00 1704417080 3 4 6 2 22 \n",
+ "148 175 u00 1704417080 4 4 5 2 37 \n",
+ "149 175 u00 1704417260 1 1 8 4 43 \n",
+ "150 175 u00 1704417260 2 2 7 3 45 \n",
+ "151 175 u00 1704417260 3 3 6 1 33 \n",
+ "152 175 u00 1704417260 3 4 6 2 22 \n",
+ "153 175 u00 1704417260 4 4 5 2 37 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "139 ggggrgggg ggggrgggg 0 \n",
+ "140 ggggGgggg ggggrgggg 1 \n",
+ "141 ggggrgggg ggggrgggg 2 \n",
+ "142 ggggrgggg ggggrgggg 3 \n",
+ "143 ggggrgggg ggggrgggg 4 \n",
+ "144 ggggrgggg ggggrgggg 0 \n",
+ "145 ggggGgggg ggggrgggg 1 \n",
+ "146 ggggrgggg ggggrgggg 2 \n",
+ "147 ggggrgggg ggggrgggg 3 \n",
+ "148 ggggrgggg ggggrgggg 4 \n",
+ "149 ggggrgggg ggggrgggg 0 \n",
+ "150 ggggGgggg ggggrgggg 1 \n",
+ "151 ggggrgggg ggggrgggg 2 \n",
+ "152 ggggrgggg ggggrgggg 3 \n",
+ "153 ggggrgggg ggggrgggg 4 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 154 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704416880 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 155 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704416880 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 27 | \n",
+ " ggGggg | \n",
+ " ggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 156 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704416880 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 70 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 157 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704416880 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 40 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 158 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417060 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 159 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417060 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 27 | \n",
+ " ggGggg | \n",
+ " ggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 160 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417060 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 70 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 161 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417060 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 40 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 162 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417240 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 163 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417240 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 27 | \n",
+ " ggGggg | \n",
+ " ggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 164 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417240 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 70 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 165 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417240 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 40 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 166 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417420 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 43 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 167 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417420 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 27 | \n",
+ " ggGggg | \n",
+ " ggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 168 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417420 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 70 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 169 | \n",
+ " 177 | \n",
+ " u20 | \n",
+ " 1704417420 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 40 | \n",
+ " ggrggg | \n",
+ " ggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "154 177 u20 1704416880 1 1 8 4 43 \n",
+ "155 177 u20 1704416880 2 2 7 3 27 \n",
+ "156 177 u20 1704416880 3 3 17 18 70 \n",
+ "157 177 u20 1704416880 4 4 5 1 40 \n",
+ "158 177 u20 1704417060 1 1 8 4 43 \n",
+ "159 177 u20 1704417060 2 2 7 3 27 \n",
+ "160 177 u20 1704417060 3 3 17 18 70 \n",
+ "161 177 u20 1704417060 4 4 5 1 40 \n",
+ "162 177 u20 1704417240 1 1 8 4 43 \n",
+ "163 177 u20 1704417240 2 2 7 3 27 \n",
+ "164 177 u20 1704417240 3 3 17 18 70 \n",
+ "165 177 u20 1704417240 4 4 5 1 40 \n",
+ "166 177 u20 1704417420 1 1 8 4 43 \n",
+ "167 177 u20 1704417420 2 2 7 3 27 \n",
+ "168 177 u20 1704417420 3 3 17 18 70 \n",
+ "169 177 u20 1704417420 4 4 5 1 40 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "154 ggrggg ggrggg 0 \n",
+ "155 ggGggg ggrggg 1 \n",
+ "156 ggrggg ggrggg 2 \n",
+ "157 ggrggg ggrggg 3 \n",
+ "158 ggrggg ggrggg 0 \n",
+ "159 ggGggg ggrggg 1 \n",
+ "160 ggrggg ggrggg 2 \n",
+ "161 ggrggg ggrggg 3 \n",
+ "162 ggrggg ggrggg 0 \n",
+ "163 ggGggg ggrggg 1 \n",
+ "164 ggrggg ggrggg 2 \n",
+ "165 ggrggg ggrggg 3 \n",
+ "166 ggrggg ggrggg 0 \n",
+ "167 ggGggg ggrggg 1 \n",
+ "168 ggrggg ggrggg 2 \n",
+ "169 ggrggg ggrggg 3 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 170 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704416860 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 171 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704416860 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 172 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704416860 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 173 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704416860 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 174 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417029 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 175 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417029 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 176 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417029 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 177 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417029 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 178 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417199 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 179 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417199 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 180 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417199 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 181 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417199 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 182 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417369 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 183 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417369 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 184 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417369 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 185 | \n",
+ " 178 | \n",
+ " u30 | \n",
+ " 1704417369 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "170 178 u30 1704416860 1 1 8 4 38 \n",
+ "171 178 u30 1704416860 2 2 7 3 39 \n",
+ "172 178 u30 1704416860 3 3 5 2 43 \n",
+ "173 178 u30 1704416860 4 4 6 1 22 \n",
+ "174 178 u30 1704417029 1 1 8 4 38 \n",
+ "175 178 u30 1704417029 2 2 7 3 39 \n",
+ "176 178 u30 1704417029 3 3 5 2 43 \n",
+ "177 178 u30 1704417029 4 4 6 1 22 \n",
+ "178 178 u30 1704417199 1 1 8 4 38 \n",
+ "179 178 u30 1704417199 2 2 7 3 39 \n",
+ "180 178 u30 1704417199 3 3 5 2 43 \n",
+ "181 178 u30 1704417199 4 4 6 1 22 \n",
+ "182 178 u30 1704417369 1 1 8 4 38 \n",
+ "183 178 u30 1704417369 2 2 7 3 39 \n",
+ "184 178 u30 1704417369 3 3 5 2 43 \n",
+ "185 178 u30 1704417369 4 4 6 1 22 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "170 ggggrggg ggggrggg 0 \n",
+ "171 ggggrggg ggggrggg 1 \n",
+ "172 ggggrggg ggggrggg 2 \n",
+ "173 ggggGggg ggggrggg 3 \n",
+ "174 ggggrggg ggggrggg 0 \n",
+ "175 ggggrggg ggggrggg 1 \n",
+ "176 ggggrggg ggggrggg 2 \n",
+ "177 ggggGggg ggggrggg 3 \n",
+ "178 ggggrggg ggggrggg 0 \n",
+ "179 ggggrggg ggggrggg 1 \n",
+ "180 ggggrggg ggggrggg 2 \n",
+ "181 ggggGggg ggggrggg 3 \n",
+ "182 ggggrggg ggggrggg 0 \n",
+ "183 ggggrggg ggggrggg 1 \n",
+ "184 ggggrggg ggggrggg 2 \n",
+ "185 ggggGggg ggggrggg 3 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 186 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704416860 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 187 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704416860 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 188 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704416860 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 189 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704416860 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 190 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417029 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 191 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417029 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 192 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417029 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 193 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417029 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 194 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417199 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 195 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417199 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 196 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417199 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 197 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417199 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 198 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417369 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " ggggGggg | \n",
+ " ggggrggg | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 199 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417369 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 200 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417369 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 201 | \n",
+ " 178 | \n",
+ " u31 | \n",
+ " 1704417369 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " ggggrggg | \n",
+ " ggggrggg | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "186 178 u31 1704416860 1 1 8 4 38 \n",
+ "187 178 u31 1704416860 2 2 7 3 39 \n",
+ "188 178 u31 1704416860 3 3 5 2 43 \n",
+ "189 178 u31 1704416860 4 4 6 1 22 \n",
+ "190 178 u31 1704417029 1 1 8 4 38 \n",
+ "191 178 u31 1704417029 2 2 7 3 39 \n",
+ "192 178 u31 1704417029 3 3 5 2 43 \n",
+ "193 178 u31 1704417029 4 4 6 1 22 \n",
+ "194 178 u31 1704417199 1 1 8 4 38 \n",
+ "195 178 u31 1704417199 2 2 7 3 39 \n",
+ "196 178 u31 1704417199 3 3 5 2 43 \n",
+ "197 178 u31 1704417199 4 4 6 1 22 \n",
+ "198 178 u31 1704417369 1 1 8 4 38 \n",
+ "199 178 u31 1704417369 2 2 7 3 39 \n",
+ "200 178 u31 1704417369 3 3 5 2 43 \n",
+ "201 178 u31 1704417369 4 4 6 1 22 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "186 ggggGggg ggggrggg 0 \n",
+ "187 ggggrggg ggggrggg 1 \n",
+ "188 ggggrggg ggggrggg 2 \n",
+ "189 ggggrggg ggggrggg 3 \n",
+ "190 ggggGggg ggggrggg 0 \n",
+ "191 ggggrggg ggggrggg 1 \n",
+ "192 ggggrggg ggggrggg 2 \n",
+ "193 ggggrggg ggggrggg 3 \n",
+ "194 ggggGggg ggggrggg 0 \n",
+ "195 ggggrggg ggggrggg 1 \n",
+ "196 ggggrggg ggggrggg 2 \n",
+ "197 ggggrggg ggggrggg 3 \n",
+ "198 ggggGggg ggggrggg 0 \n",
+ "199 ggggrggg ggggrggg 1 \n",
+ "200 ggggrggg ggggrggg 2 \n",
+ "201 ggggrggg ggggrggg 3 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 202 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704416860 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " gggggggr | \n",
+ " gggggggG | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 203 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704416860 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 204 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704416860 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 205 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704416860 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 206 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417029 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " gggggggr | \n",
+ " gggggggG | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 207 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417029 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 208 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417029 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 209 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417029 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 210 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417199 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " gggggggr | \n",
+ " gggggggG | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 211 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417199 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 212 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417199 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 213 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417199 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 214 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417369 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 38 | \n",
+ " gggggggr | \n",
+ " gggggggG | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 215 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417369 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 39 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 216 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417369 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 217 | \n",
+ " 178 | \n",
+ " u32 | \n",
+ " 1704417369 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " gggggggr | \n",
+ " gggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "202 178 u32 1704416860 1 1 8 4 38 \n",
+ "203 178 u32 1704416860 2 2 7 3 39 \n",
+ "204 178 u32 1704416860 3 3 5 2 43 \n",
+ "205 178 u32 1704416860 4 4 6 1 22 \n",
+ "206 178 u32 1704417029 1 1 8 4 38 \n",
+ "207 178 u32 1704417029 2 2 7 3 39 \n",
+ "208 178 u32 1704417029 3 3 5 2 43 \n",
+ "209 178 u32 1704417029 4 4 6 1 22 \n",
+ "210 178 u32 1704417199 1 1 8 4 38 \n",
+ "211 178 u32 1704417199 2 2 7 3 39 \n",
+ "212 178 u32 1704417199 3 3 5 2 43 \n",
+ "213 178 u32 1704417199 4 4 6 1 22 \n",
+ "214 178 u32 1704417369 1 1 8 4 38 \n",
+ "215 178 u32 1704417369 2 2 7 3 39 \n",
+ "216 178 u32 1704417369 3 3 5 2 43 \n",
+ "217 178 u32 1704417369 4 4 6 1 22 \n",
+ "\n",
+ " state_A state_B phase_sumo \n",
+ "202 gggggggr gggggggG 0 \n",
+ "203 gggggggr gggggggr 1 \n",
+ "204 gggggggr gggggggr 2 \n",
+ "205 gggggggr gggggggr 3 \n",
+ "206 gggggggr gggggggG 0 \n",
+ "207 gggggggr gggggggr 1 \n",
+ "208 gggggggr gggggggr 2 \n",
+ "209 gggggggr gggggggr 3 \n",
+ "210 gggggggr gggggggG 0 \n",
+ "211 gggggggr gggggggr 1 \n",
+ "212 gggggggr gggggggr 2 \n",
+ "213 gggggggr gggggggr 3 \n",
+ "214 gggggggr gggggggG 0 \n",
+ "215 gggggggr gggggggr 1 \n",
+ "216 gggggggr gggggggr 2 \n",
+ "217 gggggggr gggggggr 3 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " node_id | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " duration | \n",
+ " state_A | \n",
+ " state_B | \n",
+ " phase_sumo | \n",
"
\n",
+ " \n",
+ " \n",
" \n",
- " 1 | \n",
- " c30 | \n",
- " 1704416690 | \n",
- " 1y_1y | \n",
- " 4 | \n",
- " rrrrrr | \n",
+ " 218 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704416960 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
"
\n",
" \n",
- " 2 | \n",
- " c30 | \n",
- " 1704416690 | \n",
- " 2r_2r | \n",
+ " 219 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704416960 | \n",
+ " 1 | \n",
" 2 | \n",
- " rrrrrr | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
"
\n",
" \n",
- " 3 | \n",
- " c30 | \n",
- " 1704416690 | \n",
- " 2g_2g | \n",
- " 33 | \n",
- " GGGGGG | \n",
+ " 220 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704416960 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
"
\n",
" \n",
- " 4 | \n",
- " c30 | \n",
- " 1704416690 | \n",
- " 2y_2y | \n",
+ " 221 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704416960 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
" 4 | \n",
- " GGGGGG | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
"
\n",
" \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
+ " 222 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704416960 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 223 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417140 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
"
\n",
" \n",
- " 51 | \n",
+ " 224 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2r_2g | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
" 2 | \n",
+ " 15 | \n",
" ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
"
\n",
" \n",
- " 52 | \n",
+ " 225 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2g_2g | \n",
- " 37 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
" ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
"
\n",
" \n",
- " 53 | \n",
+ " 226 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 2y_2y | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
" 4 | \n",
- " ggggggggy | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
"
\n",
" \n",
- " 54 | \n",
+ " 227 | \n",
+ " 210 | \n",
" u60 | \n",
" 1704417140 | \n",
- " 3r_3r | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 228 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417320 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 229 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417320 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
" 2 | \n",
+ " 15 | \n",
" ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
"
\n",
" \n",
- " 55 | \n",
+ " 230 | \n",
+ " 210 | \n",
" u60 | \n",
- " 1704417140 | \n",
- " 3g_3g | \n",
- " 64 | \n",
+ " 1704417320 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 231 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417320 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 232 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417320 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 233 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417500 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 28 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 234 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417500 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 15 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 235 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417500 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 43 | \n",
+ " ggggggggG | \n",
+ " ggggggggr | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 236 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417500 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 70 | \n",
+ " ggggggggr | \n",
+ " ggggggggr | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 237 | \n",
+ " 210 | \n",
+ " u60 | \n",
+ " 1704417500 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 24 | \n",
" ggggggggr | \n",
+ " ggggggggr | \n",
+ " 4 | \n",
"
\n",
" \n",
"
\n",
- "
637 rows × 5 columns
\n",
"
"
],
"text/plain": [
- " node_id start_unix phase duration state\n",
- "0 c30 1704416690 1g_1g 34 rrrrrr\n",
- "1 c30 1704416690 1y_1y 4 rrrrrr\n",
- "2 c30 1704416690 2r_2r 2 rrrrrr\n",
- "3 c30 1704416690 2g_2g 33 GGGGGG\n",
- "4 c30 1704416690 2y_2y 4 GGGGGG\n",
- ".. ... ... ... ... ...\n",
- "51 u60 1704417140 2r_2g 2 ggggggggr\n",
- "52 u60 1704417140 2g_2g 37 ggggggggG\n",
- "53 u60 1704417140 2y_2y 4 ggggggggy\n",
- "54 u60 1704417140 3r_3r 2 ggggggggr\n",
- "55 u60 1704417140 3g_3g 64 ggggggggr\n",
+ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
+ "218 210 u60 1704416960 1 1 6 18 28 \n",
+ "219 210 u60 1704416960 1 2 6 2 15 \n",
+ "220 210 u60 1704416960 2 2 5 2 43 \n",
+ "221 210 u60 1704416960 3 3 7 4 70 \n",
+ "222 210 u60 1704416960 4 4 8 3 24 \n",
+ "223 210 u60 1704417140 1 1 6 18 28 \n",
+ "224 210 u60 1704417140 1 2 6 2 15 \n",
+ "225 210 u60 1704417140 2 2 5 2 43 \n",
+ "226 210 u60 1704417140 3 3 7 4 70 \n",
+ "227 210 u60 1704417140 4 4 8 3 24 \n",
+ "228 210 u60 1704417320 1 1 6 18 28 \n",
+ "229 210 u60 1704417320 1 2 6 2 15 \n",
+ "230 210 u60 1704417320 2 2 5 2 43 \n",
+ "231 210 u60 1704417320 3 3 7 4 70 \n",
+ "232 210 u60 1704417320 4 4 8 3 24 \n",
+ "233 210 u60 1704417500 1 1 6 18 28 \n",
+ "234 210 u60 1704417500 1 2 6 2 15 \n",
+ "235 210 u60 1704417500 2 2 5 2 43 \n",
+ "236 210 u60 1704417500 3 3 7 4 70 \n",
+ "237 210 u60 1704417500 4 4 8 3 24 \n",
"\n",
- "[637 rows x 5 columns]"
+ " state_A state_B phase_sumo \n",
+ "218 ggggggggr ggggggggr 0 \n",
+ "219 ggggggggr ggggggggr 1 \n",
+ "220 ggggggggG ggggggggr 2 \n",
+ "221 ggggggggr ggggggggr 3 \n",
+ "222 ggggggggr ggggggggr 4 \n",
+ "223 ggggggggr ggggggggr 0 \n",
+ "224 ggggggggr ggggggggr 1 \n",
+ "225 ggggggggG ggggggggr 2 \n",
+ "226 ggggggggr ggggggggr 3 \n",
+ "227 ggggggggr ggggggggr 4 \n",
+ "228 ggggggggr ggggggggr 0 \n",
+ "229 ggggggggr ggggggggr 1 \n",
+ "230 ggggggggG ggggggggr 2 \n",
+ "231 ggggggggr ggggggggr 3 \n",
+ "232 ggggggggr ggggggggr 4 \n",
+ "233 ggggggggr ggggggggr 0 \n",
+ "234 ggggggggr ggggggggr 1 \n",
+ "235 ggggggggG ggggggggr 2 \n",
+ "236 ggggggggr ggggggggr 3 \n",
+ "237 ggggggggr ggggggggr 4 "
]
},
- "execution_count": 12,
"metadata": {},
- "output_type": "execute_result"
+ "output_type": "display_data"
}
],
"source": [
- "self.SIGTABLE"
+ "# 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정\n",
+ "for uturn_id in self.uturn_ids:\n",
+ " the_uturn = self.sigtable.node_id==uturn_id\n",
+ " states = np.unique(self.sigtable[the_uturn][['state_A', 'state_B']].values)\n",
+ " if not any('G' in state for state in states):\n",
+ " uindex = self.uid2uindex[uturn_id]\n",
+ " for i, row in self.sigtable[the_uturn].iterrows():\n",
+ " self.sigtable.at[i, 'state_A'] = row.state_A[:uindex] + 'g' + row.state_A[uindex+1:]\n",
+ " self.sigtable.at[i, 'state_B'] = row.state_B[:uindex] + 'g' + row.state_B[uindex+1:]"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/Intermediates/ids.json b/Intermediates/ids.json
new file mode 100644
index 000000000..4bcfb83b2
--- /dev/null
+++ b/Intermediates/ids.json
@@ -0,0 +1 @@
+{"node_ids": ["c30", "i0", "i1", "i2", "i3", "i6", "i7", "i8", "i9", "u00", "u20", "u30", "u31", "u32", "u60"], "parent_ids": ["i0", "i1", "i2", "i3", "i6", "i7", "i8", "i9"], "child_ids": ["c30", "u00", "u20", "u30", "u31", "u32", "u60"], "uturn_ids": ["u00", "u20", "u30", "u31", "u32", "u60"], "coord_ids": ["c30"], "inter_nos": [175, 176, 177, 178, 201, 202, 206, 210]}
\ No newline at end of file
diff --git a/Intermediates/match6.csv b/Intermediates/match6.csv
index d1e39887a..c857bec2e 100644
--- a/Intermediates/match6.csv
+++ b/Intermediates/match6.csv
@@ -31,10 +31,10 @@
29,177,i2,4,B,1,rrgrrrr
30,177,u20,1,A,8,ggrggg
31,177,u20,1,B,4,ggrggg
-32,177,u20,2,A,7,ggrggg
+32,177,u20,2,A,7,ggGggg
33,177,u20,2,B,3,ggrggg
34,177,u20,3,A,17,ggrggg
-35,177,u20,3,B,18,ggGggg
+35,177,u20,3,B,18,ggrggg
36,177,u20,4,A,5,ggrggg
37,177,u20,4,B,1,ggrggg
38,178,c30,1,A,20,rrrrrr
diff --git a/Intermediates/matching.csv b/Intermediates/matching.csv
index ddf34a10a..c0e3030de 100644
--- a/Intermediates/matching.csv
+++ b/Intermediates/matching.csv
@@ -30,47 +30,48 @@
28,177,i2,21,rrgrrrr
29,177,i2,21,rrgrrrr
30,177,i2,21,rrgrrrr
-31,178,i3,1,grrrrgrrrGgrrrrgrrrr
-32,178,i3,2,grrrrgrrrrgrrrrgGGGr
-33,178,i3,3,grrrrgrrrrgrrrGgrrrr
-34,178,i3,4,gGGGrgrrrrgrrrrgrrrr
-35,178,i3,5,grrrrgrrrrgrrrrgrrrG
-36,178,i3,6,grrrrgGGGrgrrrrgrrrr
-37,178,i3,7,grrrGgrrrrgrrrrgrrrr
-38,178,i3,8,grrrrgrrrrgGGGrgrrrr
-39,178,i3,21,grrrrgrrrrgrrrrgrrrr
+31,177,u20,7,ggGggg
+32,178,i3,1,grrrrgrrrGgrrrrgrrrr
+33,178,i3,2,grrrrgrrrrgrrrrgGGGr
+34,178,i3,3,grrrrgrrrrgrrrGgrrrr
+35,178,i3,4,gGGGrgrrrrgrrrrgrrrr
+36,178,i3,5,grrrrgrrrrgrrrrgrrrG
+37,178,i3,6,grrrrgGGGrgrrrrgrrrr
+38,178,i3,7,grrrGgrrrrgrrrrgrrrr
+39,178,i3,8,grrrrgrrrrgGGGrgrrrr
40,178,i3,21,grrrrgrrrrgrrrrgrrrr
41,178,i3,21,grrrrgrrrrgrrrrgrrrr
42,178,i3,21,grrrrgrrrrgrrrrgrrrr
-43,178,u30,6,ggggGggg
-44,178,u31,8,ggggGggg
-45,178,u32,4,gggggggG
-46,201,i8,1,grrrrrrGgrrrgrrr
-47,201,i8,2,grrrrrrrgrrrgGGr
-48,201,i8,3,grrrrrrrgrrGgrrr
-49,201,i8,4,gGGrrrrrgrrrgrrr
-50,201,i8,5,grrrrrrrgrrrgrrG
-51,201,i8,6,grrrGGGrgrrrgrrr
-52,201,i8,7,grrGrrrrgrrrgrrr
-53,201,i8,8,grrrrrrrgGGrgrrr
-54,201,i8,21,grrrrrrrgrrrgrrr
+43,178,i3,21,grrrrgrrrrgrrrrgrrrr
+44,178,u30,6,ggggGggg
+45,178,u31,8,ggggGggg
+46,178,u32,4,gggggggG
+47,201,i8,1,grrrrrrGgrrrgrrr
+48,201,i8,2,grrrrrrrgrrrgGGr
+49,201,i8,3,grrrrrrrgrrGgrrr
+50,201,i8,4,gGGrrrrrgrrrgrrr
+51,201,i8,5,grrrrrrrgrrrgrrG
+52,201,i8,6,grrrGGGrgrrrgrrr
+53,201,i8,7,grrGrrrrgrrrgrrr
+54,201,i8,8,grrrrrrrgGGrgrrr
55,201,i8,21,grrrrrrrgrrrgrrr
56,201,i8,21,grrrrrrrgrrrgrrr
57,201,i8,21,grrrrrrrgrrrgrrr
-58,202,i9,2,rrGG
-59,202,i9,6,GGrr
-60,206,i7,4,GGrggrr
-61,206,i7,8,rrrggGG
-62,210,i6,1,grrrgrrrGgrrgrrr
-63,210,i6,2,grrrgrrrrgrrgGGr
-64,210,i6,3,grrrgrrrrgrrgrrr
-65,210,i6,4,gGGrgrrrrgrrgrrr
-66,210,i6,5,grrrgrrrrgrrgrrG
-67,210,i6,6,grrrgGGGrgrrgrrr
-68,210,i6,7,grrGgrrrrgrrgrrr
-69,210,i6,8,grrrgrrrrgGGgrrr
-70,210,i6,21,grrrgrrrrgrrgrrr
+58,201,i8,21,grrrrrrrgrrrgrrr
+59,202,i9,2,rrGG
+60,202,i9,6,GGrr
+61,206,i7,4,GGrggrr
+62,206,i7,8,rrrggGG
+63,210,i6,1,grrrgrrrGgrrgrrr
+64,210,i6,2,grrrgrrrrgrrgGGr
+65,210,i6,3,grrrgrrrrgrrgrrr
+66,210,i6,4,gGGrgrrrrgrrgrrr
+67,210,i6,5,grrrgrrrrgrrgrrG
+68,210,i6,6,grrrgGGGrgrrgrrr
+69,210,i6,7,grrGgrrrrgrrgrrr
+70,210,i6,8,grrrgrrrrgGGgrrr
71,210,i6,21,grrrgrrrrgrrgrrr
72,210,i6,21,grrrgrrrrgrrgrrr
73,210,i6,21,grrrgrrrrgrrgrrr
-74,210,u60,5,ggggggggG
+74,210,i6,21,grrrgrrrrgrrgrrr
+75,210,u60,5,ggggggggG
diff --git a/Intermediates/uid2uindex.json b/Intermediates/uid2uindex.json
new file mode 100644
index 000000000..798df7a6a
--- /dev/null
+++ b/Intermediates/uid2uindex.json
@@ -0,0 +1 @@
+{"u00": 4, "u20": 2, "u30": 4, "u31": 4, "u32": 7, "u60": 8}
\ No newline at end of file
diff --git a/Results/sn_1704417300.add.xml b/Results/sn_1704417300.add.xml
index 904cdaeee..e3553fecf 100644
--- a/Results/sn_1704417300.add.xml
+++ b/Results/sn_1704417300.add.xml
@@ -432,46 +432,46 @@
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
-
-
+
+
-
+
diff --git a/Results/sn_1704417600.add.xml b/Results/sn_1704417600.add.xml
index a6ab0e57f..465bd94d3 100644
--- a/Results/sn_1704417600.add.xml
+++ b/Results/sn_1704417600.add.xml
@@ -1,62 +1,59 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
+
-
+
@@ -68,10 +65,10 @@
-
+
-
+
@@ -83,17 +80,12 @@
-
-
-
-
-
-
-
+
+
-
+
@@ -124,12 +116,9 @@
-
-
-
-
+
@@ -172,120 +161,112 @@
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
@@ -328,72 +309,66 @@
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
@@ -412,12 +387,9 @@
-
-
-
-
+
@@ -454,263 +426,244 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/Results/sn_1704418200.add.xml b/Results/sn_1704418200.add.xml
index fc537fa91..6a4fce0a7 100644
--- a/Results/sn_1704418200.add.xml
+++ b/Results/sn_1704418200.add.xml
@@ -1,62 +1,59 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
+
-
+
@@ -68,10 +65,10 @@
-
+
-
+
@@ -83,17 +80,12 @@
-
-
-
-
-
-
-
+
+
-
+
@@ -124,12 +116,9 @@
-
-
-
-
+
@@ -172,120 +161,112 @@
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
@@ -328,72 +309,66 @@
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
@@ -412,12 +387,9 @@
-
-
-
-
+
@@ -454,263 +426,244 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/Results/sn_1704419400.add.xml b/Results/sn_1704419400.add.xml
index acbfe5b92..03ffa6465 100644
--- a/Results/sn_1704419400.add.xml
+++ b/Results/sn_1704419400.add.xml
@@ -1,62 +1,59 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
+
-
+
@@ -68,10 +65,10 @@
-
+
-
+
@@ -83,17 +80,12 @@
-
-
-
-
-
-
-
+
+
-
+
@@ -124,12 +116,9 @@
-
-
-
-
+
@@ -172,120 +161,112 @@
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
@@ -328,72 +309,66 @@
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
@@ -412,12 +387,9 @@
-
-
-
-
+
@@ -454,263 +426,244 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/Scripts/__pycache__/generate_signals.cpython-38.pyc b/Scripts/__pycache__/generate_signals.cpython-38.pyc
index 04c2766d1..e7bb63f71 100644
Binary files a/Scripts/__pycache__/generate_signals.cpython-38.pyc and b/Scripts/__pycache__/generate_signals.cpython-38.pyc differ
diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc
index 7b1fdefde..ac52c6ccb 100644
Binary files a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc differ
diff --git a/Scripts/generate_signals.py b/Scripts/generate_signals.py
index 56e195b6d..5b43b9f28 100644
--- a/Scripts/generate_signals.py
+++ b/Scripts/generate_signals.py
@@ -180,10 +180,16 @@ class SignalGenerator():
self.timetable = self.plan[['start_hour', 'start_minute']].drop_duplicates()
self.timetable['start_seconds'] = self.midnight + self.timetable['start_hour'] * 3600 + self.timetable['start_minute'] * 60
+ with open(os.path.join(self.path_intermediates, 'ids.json'), 'r') as file:
+ ids = json.load(file)
+ self.inter_nos = ids['inter_nos']
+ self.node_ids = ids['node_ids']
+ self.parent_ids = ids['parent_ids']
+ self.child_ids = ids['child_ids']
+ self.uturn_ids = ids['uturn_ids']
+ self.coord_ids = ids['coord_ids']
+
# A dictionary that maps parent_id to a list of child_ids
- self.node_ids = sorted(self.inter_node.node_id.unique())
- self.parent_ids = sorted(self.inter_node[self.inter_node.inter_type=='parent'].node_id.unique())
- # self.pa2ch = {'i0':['u00'], 'i1':[], 'i2':['u20'], 'i3':['c30', 'u30', 'u31', 'u32'], 'i6':['u60'], 'i7':[], 'i8':[], 'i9':[]}
self.pa2ch = {}
for parent_id in self.parent_ids:
inter_no = self.node2inter[parent_id]
@@ -200,8 +206,8 @@ class SignalGenerator():
self.plan_set = self.plan.set_index(['inter_no','start_hour','start_minute'])
- # 교차로목록 정의
- self.inter_nos = sorted(self.inter_info.inter_no.unique())
+ with open(os.path.join(self.path_intermediates, 'uid2uindex.json'), 'r') as file:
+ self.uid2uindex = json.load(file)
# 2. 신호이력 전처리
def process_history(self):
@@ -704,7 +710,16 @@ class SignalGenerator():
self.sigtable.append(group)
self.sigtable = pd.concat(self.sigtable).reset_index(drop=True)
self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount()
- # self.Sigtable = self.Sigtable[['node_id', 'start_unix', 'phase_sumo', 'duration', 'state']]
+
+ # 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정
+ for uturn_id in self.uturn_ids:
+ the_uturn = self.sigtable.node_id==uturn_id
+ states = np.unique(self.sigtable[the_uturn][['state_A', 'state_B']].values)
+ if not any('G' in state for state in states):
+ uindex = self.uid2uindex[uturn_id]
+ for i, row in self.sigtable[the_uturn].iterrows():
+ self.sigtable.at[i, 'state_A'] = row.state_A[:uindex] + 'g' + row.state_A[uindex+1:]
+ self.sigtable.at[i, 'state_B'] = row.state_B[:uindex] + 'g' + row.state_B[uindex+1:]
# 5-2. 적색 및 황색신호 부여
def assign_red_yellow(self):
diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py
index a25478b64..d78ed5f33 100644
--- a/Scripts/preprocess_daily.py
+++ b/Scripts/preprocess_daily.py
@@ -62,8 +62,9 @@ class DailyPreprocessor():
self.nema = pd.read_csv(os.path.join(self.path_tables, 'nema.csv'), encoding='cp949', dtype=loading_dtype)
# 교차로목록, 노드목록 정의
- self.inter_nos = sorted(self.inter_info.inter_no.unique())
+ self.inter_nos = [int(x) for x in sorted(self.inter_info.inter_no.unique())]
self.node_ids = sorted(self.inter_node.node_id.unique())
+
print("1-2. 테이블들이 로드되었습니다.")
# 1-3. 네트워크 무결성 검사
@@ -431,6 +432,17 @@ class DailyPreprocessor():
self.child_ids = sorted(self.inter_node[self.inter_node.inter_type=='child'].node_id.unique())
self.uturn_ids = sorted(self.uturn.child_id.unique())
self.coord_ids = sorted(self.coord.child_id.unique())
+
+ # ids
+ ids = {'node_ids' : self.node_ids,
+ 'parent_ids': self.parent_ids,
+ 'child_ids' : self.child_ids,
+ 'uturn_ids' : self.uturn_ids,
+ 'coord_ids' : self.coord_ids,
+ 'inter_nos' : self.inter_nos}
+ with open(os.path.join(self.path_intermediates, 'ids.json'), 'w') as file:
+ json.dump(ids, file)
+
ch2pa = {} # child to parent
for child_id in self.child_ids:
@@ -506,6 +518,7 @@ class DailyPreprocessor():
cmatches = pd.concat(cmatches)
self.match6 = pd.concat([self.match5, cmatches, self.coord]).drop_duplicates().sort_values(by=['inter_no', 'node_id', 'phase_no', 'ring_type'])
# self.match6.to_csv(os.path.join(self.path_intermediates, 'match6.csv'))
+
# 2-1-7
def make_matching(self):
@@ -742,6 +755,19 @@ class DailyPreprocessor():
self.matching.to_csv(os.path.join(self.path_intermediates, 'matching.csv'))
print('2-3. 직진 및 좌회전(G)을 배정했습니다.')
+ uid2uindex = {}
+ for uid in self.uturn_ids:
+ states = self.match6[self.match6.node_id==uid].state.unique()
+ for state in states:
+ if 'G' in state:
+ index = state.index('G')
+ uid2uindex[uid] = index
+ break
+
+ # json 파일로 저장
+ with open(os.path.join(self.path_intermediates, 'uid2uindex.json'), 'w') as file:
+ json.dump(uid2uindex, file)
+
# 2-4 node2num_cycles : A dictionary that maps a node_id to the number of cycles
def get_node2num_cycles(self):
Aplan = self.plan.copy()[['inter_no'] + [f'dura_A{j}' for j in range(1,9)] + ['cycle']]