From fd78e993598538a6ac67bac6f9c1d2e2731e142f Mon Sep 17 00:00:00 2001 From: govin08 Date: Fri, 12 Apr 2024 13:22:52 +0900 Subject: [PATCH] u_turn and _u_condition (read_csv) inserted. --- .../0411_unp-left.ipynb | 2903 +++++++++++------ Data/tables/uturn.csv | 2 +- .../preprocess_daily.cpython-38.pyc | Bin 24828 -> 25212 bytes Scripts/preprocess_daily.py | 2 + 4 files changed, 1832 insertions(+), 1075 deletions(-) diff --git a/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb b/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb index 2c9db6cd5..aac4cd7c9 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb @@ -67,6 +67,7 @@ "1-2. 테이블들이 로드되었습니다.\n", "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", "1-4. 테이블들의 무결성 검사를 완료했습니다.\n", + "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", "2. 중간산출물을 생성합니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", "2-2. 비보호우회전(g)을 배정했습니다.\n", @@ -83,7 +84,16 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self." + ] + }, + { + "cell_type": "code", + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -339,153 +349,104 @@ " \n", " \n", " inter_no\n", + " node_id\n", " phase_no\n", " ring_type\n", " move_no\n", - " inc_dire\n", - " out_dire\n", - " inc_angle\n", - " out_angle\n", " inc_edge_id\n", " out_edge_id\n", - " node_id\n", + " state\n", " \n", " \n", " \n", " \n", " 0\n", " 175\n", + " i0\n", " 1\n", " A\n", " 8\n", - " 남\n", - " 북\n", - " 179\n", - " 000\n", " -571542797_02\n", " 571500487_01\n", - " i0\n", + " grrrgrrrgGGGGrgrr\n", " \n", " \n", " 1\n", " 175\n", + " i0\n", " 1\n", " B\n", " 4\n", - " 북\n", - " 남\n", - " 001\n", - " 180\n", " -571500487_01\n", " 571542797_02\n", - " i0\n", + " gGGrgrrrgrrrrrgrr\n", " \n", " \n", " 2\n", " 175\n", + " i0\n", " 2\n", " A\n", " 7\n", - " 북\n", - " 동\n", - " 001\n", - " 090\n", " -571500487_01\n", " 571545870_01\n", - " i0\n", + " grrGgrrrgrrrrrgrr\n", " \n", " \n", " 3\n", " 175\n", + " i0\n", " 2\n", " B\n", " 3\n", - " 남\n", - " 서\n", - " 179\n", - " 270\n", " -571542797_02\n", " 571510153_01\n", - " i0\n", + " grrrgrrrgrrrrGgrr\n", " \n", " \n", " 4\n", " 175\n", + " i0\n", " 3\n", " A\n", " 6\n", - " 동\n", - " 서\n", - " 090\n", - " 270\n", " 571545870_02\n", " 571510153_01\n", - " i0\n", + " grrrgGGrgrrrrrgrr\n", " \n", " \n", "\n", "" ], "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "0 175 1 A 8 남 북 179 \n", - "1 175 1 B 4 북 남 001 \n", - "2 175 2 A 7 북 동 001 \n", - "3 175 2 B 3 남 서 179 \n", - "4 175 3 A 6 동 서 090 \n", + " inter_no node_id phase_no ring_type move_no inc_edge_id out_edge_id \\\n", + "0 175 i0 1 A 8 -571542797_02 571500487_01 \n", + "1 175 i0 1 B 4 -571500487_01 571542797_02 \n", + "2 175 i0 2 A 7 -571500487_01 571545870_01 \n", + "3 175 i0 2 B 3 -571542797_02 571510153_01 \n", + "4 175 i0 3 A 6 571545870_02 571510153_01 \n", "\n", - " out_angle inc_edge_id out_edge_id node_id \n", - "0 000 -571542797_02 571500487_01 i0 \n", - "1 180 -571500487_01 571542797_02 i0 \n", - "2 090 -571500487_01 571545870_01 i0 \n", - "3 270 -571542797_02 571510153_01 i0 \n", - "4 270 571545870_02 571510153_01 i0 " + " state \n", + "0 grrrgrrrgGGGGrgrr \n", + "1 gGGrgrrrgrrrrrgrr \n", + "2 grrGgrrrgrrrrrgrr \n", + "3 grrrgrrrgrrrrGgrr \n", + "4 grrrgGGrgrrrrrgrr " ] }, "metadata": {}, "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True\n" - ] } ], "source": [ "display(self.match4.head())\n", "display(self.match5.head())\n", - "display(self.match6.head())\n", - "print((self.match5.head()==self.match6.head()).all().all())" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "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-1. 매칭 테이블들을 생성했습니다.\n" - ] - } - ], - "source": [ - "self.load_data()\n", - "self.get_matches()" + "display(self.match6.head())" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -524,989 +485,1257 @@ " \n", " \n", " \n", + " 0\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 1\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 2\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 4\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 5\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 6\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 7\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 8\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 9\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 10\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 11\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 12\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 13\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", + " \n", + " \n", + " 14\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 15\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 16\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 17\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 18\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", + " \n", + " \n", + " 19\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", + " \n", + " \n", + " 20\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 21\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 22\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 23\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 24\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 25\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 26\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 27\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 28\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 29\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 31\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 32\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 33\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 34\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 35\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 36\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 37\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 38\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", + " 39\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " \n", + " \n", " 40\n", - " 178\n", - " 2\n", - " A\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_01\n", - " -571542116_02.96\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 41\n", - " 178\n", - " 2\n", - " B\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_02.96\n", - " 571542116_02.164\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 42\n", - " 178\n", - " 3\n", - " A\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_01\n", - " -571542116_02.96\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 43\n", - " 178\n", - " 3\n", - " B\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_02.96\n", - " 571542116_02.164\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 44\n", - " 178\n", - " 4\n", - " A\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_01\n", - " -571542116_02.96\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 45\n", - " 178\n", - " 4\n", - " B\n", - " 20\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 571542116_02.96\n", - " 571542116_02.164\n", - " c30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 46\n", - " 178\n", - " 1\n", - " A\n", - " 8\n", - " 남\n", - " 북\n", - " 180\n", - " 000\n", - " 571540304_02\n", - " 571556450_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 47\n", - " 178\n", - " 1\n", - " B\n", - " 4\n", - " 북\n", - " 남\n", - " 000\n", - " 180\n", - " 571556450_02\n", - " 571540304_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 48\n", - " 178\n", - " 2\n", - " A\n", - " 7\n", - " 북\n", - " 동\n", - " 000\n", - " 090\n", - " 571556450_02\n", - " 571500475_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 49\n", - " 178\n", - " 2\n", - " B\n", - " 3\n", - " 남\n", - " 서\n", - " 180\n", - " 270\n", - " 571540304_02\n", - " 571540303_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 50\n", - " 178\n", - " 3\n", - " A\n", - " 5\n", - " 서\n", - " 북\n", - " 270\n", - " 000\n", - " 571540303_02.21\n", - " 571556450_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 51\n", - " 178\n", - " 3\n", - " B\n", - " 2\n", - " 서\n", - " 동\n", - " 270\n", - " 090\n", - " 571540303_02.21\n", - " 571500475_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 52\n", - " 178\n", - " 4\n", - " A\n", - " 6\n", - " 동\n", - " 서\n", - " 090\n", - " 270\n", - " -571500475_01\n", - " 571540303_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 53\n", - " 178\n", - " 4\n", - " B\n", - " 1\n", - " 동\n", - " 남\n", - " 090\n", - " 180\n", - " -571500475_01\n", - " 571540304_01\n", - " i3\n", + " False\n", + " False\n", + " False\n", + " False\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " True\n", + " False\n", " \n", " \n", " 54\n", - " 178\n", - " 1\n", - " A\n", - " 8\n", - " 남\n", - " 북\n", - " 180\n", - " 000\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 55\n", - " 178\n", - " 1\n", - " B\n", - " 4\n", - " 북\n", - " 남\n", - " 000\n", - " 180\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 56\n", - " 178\n", - " 2\n", - " A\n", - " 7\n", - " 북\n", - " 동\n", - " 000\n", - " 090\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 57\n", - " 178\n", - " 2\n", - " B\n", - " 3\n", - " 남\n", - " 서\n", - " 180\n", - " 270\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 58\n", - " 178\n", - " 3\n", - " A\n", - " 5\n", - " 서\n", - " 북\n", - " 270\n", - " 000\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", " \n", " 59\n", - " 178\n", - " 3\n", - " B\n", - " 2\n", - " 서\n", - " 동\n", - " 270\n", - " 090\n", - " NaN\n", - " NaN\n", - " u30\n", - " \n", - " \n", - " 60\n", - " 178\n", - " 4\n", - " A\n", - " 6\n", - " 동\n", - " 서\n", - " 090\n", - " 270\n", - " 571556452_01\n", - " 571556452_02\n", - " u30\n", - " \n", - " \n", - " 61\n", - " 178\n", - " 4\n", - " B\n", - " 1\n", - " 동\n", - " 남\n", - " 090\n", - " 180\n", - " NaN\n", - " NaN\n", - " u30\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", + " False\n", " \n", - " \n", - " 62\n", - " 178\n", - " 1\n", - " A\n", - " 8\n", - " 남\n", - " 북\n", - " 180\n", - " 000\n", - " 571500475_02\n", - " 571500475_01.26\n", - " u31\n", + " \n", + "\n", + "" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "0 False False False False False False False \n", + "1 False False False False False False False \n", + "2 False False False False False False False \n", + "3 False False False False False False False \n", + "4 False False False False False False False \n", + "5 False False False False False False False \n", + "6 False False False False False False False \n", + "7 False False False False False False False \n", + "8 False False False False False False False \n", + "9 False False False False False False False \n", + "10 False False False False False False False \n", + "11 False False False False False False False \n", + "12 False False False False False False False \n", + "13 False False False False True True True \n", + "14 False False False False False False False \n", + "15 False False False False False False False \n", + "16 False False False False False False False \n", + "17 False False False False False False False \n", + "18 False False False False True True True \n", + "19 False False False False True True True \n", + "20 False False False False False False False \n", + "21 False False False False False False False \n", + "22 False False False False False False False \n", + "23 False False False False False False False \n", + "24 False False False False False False False \n", + "25 False False False False False False False \n", + "26 False False False False False False False \n", + "27 False False False False False False False \n", + "28 False False False False False False False \n", + "29 False False False False False False False \n", + "30 False False False False False False False \n", + "31 False False False False False False False \n", + "32 False False False False False False False \n", + "33 False False False False False False False \n", + "34 False False False False False False False \n", + "35 False False False False False False False \n", + "36 False False False False False False False \n", + "37 False False False False False False False \n", + "38 False False False False False False False \n", + "39 False False False False False False False \n", + "40 False False False False False False False \n", + "41 False False False False False False False \n", + "42 False False False False True True True \n", + "43 False False False False True True True \n", + "44 False False False False False False False \n", + "45 False False False False False False False \n", + "46 False False False False True True True \n", + "47 False False False False True True True \n", + "48 False False False False False False False \n", + "49 False False False False False False False \n", + "50 False False False False True True True \n", + "51 False False False False True True True \n", + "52 False False False False False False False \n", + "53 False False False False True True True \n", + "54 False False False False False False False \n", + "55 False False False False False False False \n", + "56 False False False False False False False \n", + "57 False False False False False False False \n", + "58 False False False False False False False \n", + "59 False False False False False False False \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id \n", + "0 False False False False \n", + "1 False False False False \n", + "2 False False False False \n", + "3 False False False False \n", + "4 False False False False \n", + "5 False False False False \n", + "6 False False False False \n", + "7 False False False False \n", + "8 False False False False \n", + "9 False False False False \n", + "10 False False False False \n", + "11 False False False False \n", + "12 False False False False \n", + "13 True True True False \n", + "14 False False False False \n", + "15 False False False False \n", + "16 False False False False \n", + "17 False False False False \n", + "18 True True True False \n", + "19 True True True False \n", + "20 False False False False \n", + "21 False False False False \n", + "22 False False False False \n", + "23 False False False False \n", + "24 False False False False \n", + "25 False False False False \n", + "26 False False False False \n", + "27 False False False False \n", + "28 False False False False \n", + "29 False False False False \n", + "30 False False False False \n", + "31 False False False False \n", + "32 False False False False \n", + "33 False False False False \n", + "34 False False False False \n", + "35 False False False False \n", + "36 False False False False \n", + "37 False False False False \n", + "38 False False False False \n", + "39 False False False False \n", + "40 False False False False \n", + "41 False False False False \n", + "42 True True True False \n", + "43 True True True False \n", + "44 False False False False \n", + "45 False False False False \n", + "46 True True True False \n", + "47 True True True False \n", + "48 False False False False \n", + "49 False False False False \n", + "50 True True True False \n", + "51 True True True False \n", + "52 False False False False \n", + "53 True True True False \n", + "54 False False False False \n", + "55 False False False False \n", + "56 False False False False \n", + "57 False False False False \n", + "58 False False False False \n", + "59 False False False False " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.match5.dropna([''])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n", + "2\n", + "1\n", + "1\n", + "2\n", + "1\n", + "1\n", + "1\n", + "3\n", + "2\n", + "3\n", + "1\n", + "2\n" + ] + }, + { + "ename": "KeyError", + "evalue": "nan", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[15], line 4\u001b[0m\n\u001b[0;32m 2\u001b[0m inc_edge_id \u001b[38;5;241m=\u001b[39m row\u001b[38;5;241m.\u001b[39minc_edge_id\n\u001b[0;32m 3\u001b[0m out_edge_id \u001b[38;5;241m=\u001b[39m row\u001b[38;5;241m.\u001b[39mout_edge_id\n\u001b[1;32m----> 4\u001b[0m inc_edge \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnet\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgetEdge\u001b[49m\u001b[43m(\u001b[49m\u001b[43minc_edge_id\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 5\u001b[0m out_edge \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mgetEdge(out_edge_id)\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mlen\u001b[39m(inc_edge\u001b[38;5;241m.\u001b[39mgetConnections(out_edge)))\n", + "File \u001b[1;32mC:\\Program Files (x86)\\Eclipse\\Sumo\\tools\\sumolib\\net\\__init__.py:261\u001b[0m, in \u001b[0;36mNet.getEdge\u001b[1;34m(self, id)\u001b[0m\n\u001b[0;32m 260\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mgetEdge\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28mid\u001b[39m):\n\u001b[1;32m--> 261\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_id2edge\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mid\u001b[39;49m\u001b[43m]\u001b[49m\n", + "\u001b[1;31mKeyError\u001b[0m: nan" + ] + } + ], + "source": [ + "for row in self.match5.itertuples():\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " inc_edge = self.net.getEdge(inc_edge_id)\n", + " out_edge = self.net.getEdge(out_edge_id)\n", + " print(len(inc_edge.getConnections(out_edge)))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n" + ] + } + ], + "source": [ + "self.load_data()\n", + "self.make_match1()\n", + "self.make_match2()\n", + "self.make_match3()\n", + "self.make_match4()\n", + "self.make_match5()" + ] + }, + { + "cell_type": "code", + "execution_count": 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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + "
parent_idchild_iddirectionconditioninc_edge_idout_edge_id
631781B40i0u00000180NaNNaNu31좌회전시571500487_02571500487_01.32
641782A71i2u20000090NaNNaNu31
651782B3180270NaNNaNu31보행신호시571542810_01.51571542810_02
661783A52i3u30270000NaNNaNu31
671783B2270090NaNNaNu31보행신호시571556452_01571556452_02
681784A6090270NaNNaN3i3u31
691784B1090180NaNNaNu31보행신호시571500475_02571500475_01.26
701781A8180000NaNNaN4i3u32
711781B4000180보행신호시571540303_02-571540303_02u32
721782A7000090NaNNaNu32
731782B3180270NaNNaNu32
741783A5270000NaNNaNu32
751783B2270090NaNNaNu32
761784A6090270NaNNaNu32
771784B1090180NaNNaNu32
782011A8180000-571500569_01571500583_02i8
792011B3180270-571500569_01571500618_01i8
802012A5270000571500618_02571500583_02i8
812012B2270090571500618_02571500617_01i8
822013A6090270571500617_02571500618_01i8
832013B2270090571500618_02571500617_01i8
842014A65i6u60090270571500617_02571500618_01i8
852014B1090180571500617_02571500569_01i8
862015A7000090571500583_01571500617_01i8
872015B4000180571500583_01571500569_01i8좌회전시571500535_02-571500535_02
882021A6090270571510152_02-571510152_01i9
\n", + "
" + ], + "text/plain": [ + " parent_id child_id direction condition inc_edge_id out_edge_id\n", + "0 i0 u00 북 좌회전시 571500487_02 571500487_01.32\n", + "1 i2 u20 북 보행신호시 571542810_01.51 571542810_02\n", + "2 i3 u30 북 보행신호시 571556452_01 571556452_02\n", + "3 i3 u31 동 보행신호시 571500475_02 571500475_01.26\n", + "4 i3 u32 서 보행신호시 571540303_02 -571540303_02\n", + "5 i6 u60 서 좌회전시 571500535_02 -571500535_02" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
parent_idchild_idhead_edge_idinc_edge_idout_edge_id
892021B2270090571510152_01571510152_01.65i90i0u00-571500487_01571500487_02571500487_01.32
902022A17NaNNaNNaNNaNNaNNaNi9
912022B18NaNNaNNaNNaNNaNNaNi9
922061A8180000-571511538_02571542073_02i71i2u20571542811_02571542810_01.51571542810_02
932061B4000180571542073_01571511538_02i72i3u30571556450_02571556452_01571556452_02
942062A17NaNNaNNaNNaNNaNNaNi7
952062B18NaNNaNNaNNaNNaNNaNi7
962063A8180000-571511538_02571542073_02i73i3u31-571500475_01571500475_02571500475_01.26
972063B4000180571542073_01571511538_02i74i3u32571540303_02.21571540303_02-571540303_02
982064A17NaNNaNNaNNaNNaNNaNi7
992064B18NaNNaNNaNNaNNaNNaNi75i6u60571500535_02.18571500535_02-571500535_02
\n", "
" ], "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "40 178 2 A 20 NaN NaN NaN \n", - "41 178 2 B 20 NaN NaN NaN \n", - "42 178 3 A 20 NaN NaN NaN \n", - "43 178 3 B 20 NaN NaN NaN \n", - "44 178 4 A 20 NaN NaN NaN \n", - "45 178 4 B 20 NaN NaN NaN \n", - "46 178 1 A 8 남 북 180 \n", - "47 178 1 B 4 북 남 000 \n", - "48 178 2 A 7 북 동 000 \n", - "49 178 2 B 3 남 서 180 \n", - "50 178 3 A 5 서 북 270 \n", - "51 178 3 B 2 서 동 270 \n", - "52 178 4 A 6 동 서 090 \n", - "53 178 4 B 1 동 남 090 \n", - "54 178 1 A 8 남 북 180 \n", - "55 178 1 B 4 북 남 000 \n", - "56 178 2 A 7 북 동 000 \n", - "57 178 2 B 3 남 서 180 \n", - "58 178 3 A 5 서 북 270 \n", - "59 178 3 B 2 서 동 270 \n", - "60 178 4 A 6 동 서 090 \n", - "61 178 4 B 1 동 남 090 \n", - "62 178 1 A 8 남 북 180 \n", - "63 178 1 B 4 북 남 000 \n", - "64 178 2 A 7 북 동 000 \n", - "65 178 2 B 3 남 서 180 \n", - "66 178 3 A 5 서 북 270 \n", - "67 178 3 B 2 서 동 270 \n", - "68 178 4 A 6 동 서 090 \n", - "69 178 4 B 1 동 남 090 \n", - "70 178 1 A 8 남 북 180 \n", - "71 178 1 B 4 북 남 000 \n", - "72 178 2 A 7 북 동 000 \n", - "73 178 2 B 3 남 서 180 \n", - "74 178 3 A 5 서 북 270 \n", - "75 178 3 B 2 서 동 270 \n", - "76 178 4 A 6 동 서 090 \n", - "77 178 4 B 1 동 남 090 \n", - "78 201 1 A 8 남 북 180 \n", - "79 201 1 B 3 남 서 180 \n", - "80 201 2 A 5 서 북 270 \n", - "81 201 2 B 2 서 동 270 \n", - "82 201 3 A 6 동 서 090 \n", - "83 201 3 B 2 서 동 270 \n", - "84 201 4 A 6 동 서 090 \n", - "85 201 4 B 1 동 남 090 \n", - "86 201 5 A 7 북 동 000 \n", - "87 201 5 B 4 북 남 000 \n", - "88 202 1 A 6 동 서 090 \n", - "89 202 1 B 2 서 동 270 \n", - "90 202 2 A 17 NaN NaN NaN \n", - "91 202 2 B 18 NaN NaN NaN \n", - "92 206 1 A 8 남 북 180 \n", - "93 206 1 B 4 북 남 000 \n", - "94 206 2 A 17 NaN NaN NaN \n", - "95 206 2 B 18 NaN NaN NaN \n", - "96 206 3 A 8 남 북 180 \n", - "97 206 3 B 4 북 남 000 \n", - "98 206 4 A 17 NaN NaN NaN \n", - "99 206 4 B 18 NaN NaN NaN \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id \n", - "40 NaN 571542116_01 -571542116_02.96 c30 \n", - "41 NaN 571542116_02.96 571542116_02.164 c30 \n", - "42 NaN 571542116_01 -571542116_02.96 c30 \n", - "43 NaN 571542116_02.96 571542116_02.164 c30 \n", - "44 NaN 571542116_01 -571542116_02.96 c30 \n", - "45 NaN 571542116_02.96 571542116_02.164 c30 \n", - "46 000 571540304_02 571556450_01 i3 \n", - "47 180 571556450_02 571540304_01 i3 \n", - "48 090 571556450_02 571500475_01 i3 \n", - "49 270 571540304_02 571540303_01 i3 \n", - "50 000 571540303_02.21 571556450_01 i3 \n", - "51 090 571540303_02.21 571500475_01 i3 \n", - "52 270 -571500475_01 571540303_01 i3 \n", - "53 180 -571500475_01 571540304_01 i3 \n", - "54 000 NaN NaN u30 \n", - "55 180 NaN NaN u30 \n", - "56 090 NaN NaN u30 \n", - "57 270 NaN NaN u30 \n", - "58 000 NaN NaN u30 \n", - "59 090 NaN NaN u30 \n", - "60 270 571556452_01 571556452_02 u30 \n", - "61 180 NaN NaN u30 \n", - "62 000 571500475_02 571500475_01.26 u31 \n", - "63 180 NaN NaN u31 \n", - "64 090 NaN NaN u31 \n", - "65 270 NaN NaN u31 \n", - "66 000 NaN NaN u31 \n", - "67 090 NaN NaN u31 \n", - "68 270 NaN NaN u31 \n", - "69 180 NaN NaN u31 \n", - "70 000 NaN NaN u32 \n", - "71 180 571540303_02 -571540303_02 u32 \n", - "72 090 NaN NaN u32 \n", - "73 270 NaN NaN u32 \n", - "74 000 NaN NaN u32 \n", - "75 090 NaN NaN u32 \n", - "76 270 NaN NaN u32 \n", - "77 180 NaN NaN u32 \n", - "78 000 -571500569_01 571500583_02 i8 \n", - "79 270 -571500569_01 571500618_01 i8 \n", - "80 000 571500618_02 571500583_02 i8 \n", - "81 090 571500618_02 571500617_01 i8 \n", - "82 270 571500617_02 571500618_01 i8 \n", - "83 090 571500618_02 571500617_01 i8 \n", - "84 270 571500617_02 571500618_01 i8 \n", - "85 180 571500617_02 571500569_01 i8 \n", - "86 090 571500583_01 571500617_01 i8 \n", - "87 180 571500583_01 571500569_01 i8 \n", - "88 270 571510152_02 -571510152_01 i9 \n", - "89 090 571510152_01 571510152_01.65 i9 \n", - "90 NaN NaN NaN i9 \n", - "91 NaN NaN NaN i9 \n", - "92 000 -571511538_02 571542073_02 i7 \n", - "93 180 571542073_01 571511538_02 i7 \n", - "94 NaN NaN NaN i7 \n", - "95 NaN NaN NaN i7 \n", - "96 000 -571511538_02 571542073_02 i7 \n", - "97 180 571542073_01 571511538_02 i7 \n", - "98 NaN NaN NaN i7 \n", - "99 NaN NaN NaN i7 " + " parent_id child_id head_edge_id inc_edge_id out_edge_id\n", + "0 i0 u00 -571500487_01 571500487_02 571500487_01.32\n", + "1 i2 u20 571542811_02 571542810_01.51 571542810_02\n", + "2 i3 u30 571556450_02 571556452_01 571556452_02\n", + "3 i3 u31 -571500475_01 571500475_02 571500475_01.26\n", + "4 i3 u32 571540303_02.21 571540303_02 -571540303_02\n", + "5 i6 u60 571500535_02.18 571500535_02 -571500535_02" ] }, - "execution_count": 5, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "self.match6[40:100]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ + "output_type": "display_data" + }, { "data": { "text/html": [ @@ -1528,168 +1757,694 @@ " \n", " \n", " \n", - " inter_no\n", - " move_no\n", - " inc_dire\n", - " out_dire\n", - " inc_edge_id\n", - " out_edge_id\n", - " node_id\n", + " child_id\n", + " condition\n", " \n", " \n", " \n", " \n", " 0\n", - " 175\n", - " 1\n", - " 동\n", - " 남\n", - " 571545870_02\n", - " 571542797_02\n", - " i0\n", + " u00\n", + " 좌회전시\n", " \n", " \n", " 1\n", - " 175\n", - " 2\n", - " 서\n", - " 동\n", - " 571510153_02\n", - " 571545870_01\n", - " i0\n", + " u20\n", + " 보행신호시\n", " \n", " \n", " 2\n", - " 175\n", - " 3\n", - " 남\n", - " 서\n", - " -571542797_02\n", - " 571510153_01\n", - " i0\n", + " u30\n", + " 보행신호시\n", " \n", " \n", " 3\n", - " 175\n", - " 4\n", - " 북\n", - " 남\n", - " -571500487_01\n", - " 571542797_02\n", - " i0\n", + " u31\n", + " 보행신호시\n", " \n", " \n", " 4\n", - " 175\n", - " 5\n", - " 서\n", - " 북\n", - " 571510153_02\n", - " 571500487_01\n", - " i0\n", + " u32\n", + " 보행신호시\n", + " \n", + " \n", + " 5\n", + " u60\n", + " 좌회전시\n", + " \n", + " \n", + "\n", + "" + ], + "text/plain": [ + " child_id condition\n", + "0 u00 좌회전시\n", + "1 u20 보행신호시\n", + "2 u30 보행신호시\n", + "3 u31 보행신호시\n", + "4 u32 보행신호시\n", + "5 u60 좌회전시" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", "
parent_idchild_idhead_edge_idinc_edge_idout_edge_idcondition
........................0i0u00-571500487_01571500487_02571500487_01.32좌회전시
7121021571511538_02.121571500535_01i61i2u20571542811_02571542810_01.51571542810_02보행신호시
7221021571500535_02.18571500585_01i62i3u30571556450_02571556452_01571556452_02보행신호시
7321021571500585_02571542115_01i63i3u31-571500475_01571500475_02571500475_01.26보행신호시
7421021-571542115_01571511538_01i64i3u32571540303_02.21571540303_02-571540303_02보행신호시
7521055i6u60571500535_02.18571500535_02-571500535_02u60좌회전시
\n", - "

76 rows × 7 columns

\n", "
" ], "text/plain": [ - " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id \\\n", - "0 175 1 동 남 571545870_02 571542797_02 \n", - "1 175 2 서 동 571510153_02 571545870_01 \n", - "2 175 3 남 서 -571542797_02 571510153_01 \n", - "3 175 4 북 남 -571500487_01 571542797_02 \n", - "4 175 5 서 북 571510153_02 571500487_01 \n", - ".. ... ... ... ... ... ... \n", - "71 210 21 북 서 571511538_02.121 571500535_01 \n", - "72 210 21 서 남 571500535_02.18 571500585_01 \n", - "73 210 21 남 동 571500585_02 571542115_01 \n", - "74 210 21 동 북 -571542115_01 571511538_01 \n", - "75 210 5 서 북 571500535_02 -571500535_02 \n", + " parent_id child_id head_edge_id inc_edge_id out_edge_id \\\n", + "0 i0 u00 -571500487_01 571500487_02 571500487_01.32 \n", + "1 i2 u20 571542811_02 571542810_01.51 571542810_02 \n", + "2 i3 u30 571556450_02 571556452_01 571556452_02 \n", + "3 i3 u31 -571500475_01 571500475_02 571500475_01.26 \n", + "4 i3 u32 571540303_02.21 571540303_02 -571540303_02 \n", + "5 i6 u60 571500535_02.18 571500535_02 -571500535_02 \n", "\n", - " node_id \n", - "0 i0 \n", - "1 i0 \n", - "2 i0 \n", - "3 i0 \n", - "4 i0 \n", - ".. ... \n", - "71 i6 \n", - "72 i6 \n", - "73 i6 \n", - "74 i6 \n", - "75 u60 \n", - "\n", - "[76 rows x 7 columns]" + " condition \n", + "0 좌회전시 \n", + "1 보행신호시 \n", + "2 보행신호시 \n", + "3 보행신호시 \n", + "4 보행신호시 \n", + "5 좌회전시 " ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "self.matching" + "display(self.uturn)\n", + "display(self.u_turn)\n", + "display(self.u_condition)\n", + "\n", + "self.u_turn = pd.merge(self.u_turn, self.u_condition, on='child_id')\n", + "self.u_turn" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "parent_id i0\n", + "child_id u00\n", + "head_edge_id -571500487_01\n", + "inc_edge_id 571500487_02\n", + "out_edge_id 571500487_01.32\n", + "condition 좌회전시\n", + "Name: 0, dtype: object\n" + ] + } + ], + "source": [ + "cmatches = []\n", + "i = 0\n", + "row = self.u_turn.iloc[0]\n", + "print(row)\n", + "child_id = row.child_id\n", + "parent_id = row.parent_id\n", + "condition = row.condition\n", + "inc_edge_id = row.inc_edge_id\n", + "out_edge_id = row.out_edge_id\n", + "cmatch = self.match5.copy()[self.match5.node_id==parent_id] # match dataframe for a child node\n", + "cmatch = cmatch.sort_values(by=['phase_no', 'ring_type']).reset_index(drop=True)\n", + "cmatch['node_id'] = child_id" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 각 uturn node에 대하여 (inc_edge_id, out_edge_id) 부여\n", + "cmatches = []\n", + "for _, row in self.uturn.iterrows():\n", + " child_id = row.child_id\n", + " parent_id = row.parent_id\n", + " dire = row.direction\n", + " condition = row.condition\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + "\n", + " print(parent_id, condition)\n", + "\n", + " # match5에서 부모노드id에 해당하는 행들을 가져옴 (cmatch)\n", + " cmatch = self.match5.copy()[self.match5.node_id==parent_id] # match dataframe for a child node\n", + " cmatch = cmatch.sort_values(by=['phase_no', 'ring_type']).reset_index(drop=True)\n", + " cmatch['node_id'] = child_id\n", + " cmatch[['inc_edge_id', 'out_edge_id']] = np.nan\n", + " display(cmatch)\n", + "\n", + " # 보행신호시/좌회전시 진입/진출방향\n", + " ind = self.dires.index(dire)\n", + " inc_dire_pedes = self.dires[(ind + 2) % len(self.dires)]\n", + " out_dire_pedes = self.dires[(ind - 2) % len(self.dires)]\n", + " inc_dire_right = dire\n", + " out_dire_right = self.dires[(ind + 2) % len(self.dires)]\n", + "\n", + " if condition == '보행신호시':\n", + " print(inc_dire_pedes, out_dire_pedes)\n", + " else:\n", + " print(inc_dire_right, out_dire_right)\n", + "\n", + " # 보행신호시/좌회전시 조건\n", + " pedes_exists = (cmatch.inc_dire==inc_dire_pedes) & (cmatch.out_dire==out_dire_pedes)\n", + " right_exists = (cmatch.inc_dire==inc_dire_right) & (cmatch.out_dire==out_dire_right)\n", + "\n", + " # 보행신호시/좌회전시 진입/진출 엣지id 배정\n", + " ind = self.dires.index(dire)\n", + " if condition == \"보행신호시\":\n", + " cmatch.loc[pedes_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " elif condition == \"좌회전시\":\n", + " cmatch.loc[right_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " display(cmatch)\n", + "\n", + " # 신호없음이동류발생시/보행신호이동류발생시 조건\n", + " all_redsigns = cmatch.move_no == 18\n", + " crosswalk_on = cmatch.move_no == 17\n", + "\n", + " # 만약 어떤 유턴신호도 배정되지 않았다면\n", + " # 좌회전시 → 보행신호시 → 보행신호이동류발생시 → 신호없음이동류발생시 순으로 진입/진출 엣지id 배정\n", + " uturn_not_assigned = cmatch[['inc_edge_id','out_edge_id']].isna().any(axis=1).all()\n", + " if uturn_not_assigned:\n", + " # 좌회전시\n", + " if right_exists.any():\n", + " cmatch.loc[right_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " # 보행신호시\n", + " elif pedes_exists.any():\n", + " cmatch.loc[pedes_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " # 보행신호이동류(17) 발생시\n", + " elif crosswalk_on.any():\n", + " cmatch.loc[crosswalk_on & (cmatch.out_dire!=dire), ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " # 신호없음이동류(18) 발생시\n", + " elif all_redsigns.any():\n", + " cmatch.loc[all_redsigns & (cmatch.out_dire!=dire), ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", + " display(cmatch)\n", + "cmatches.append(cmatch)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "u31\n", + "5 5 s\n", + "6 6 s\n", + "7 7 s\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 t\n", + "\n", + "i3\n", + "5 5 r\n", + "6 6 s\n", + "7 7 s\n", + "8 8 s\n", + "9 9 l\n", + "15 15 r\n", + "16 16 s\n", + "17 17 s\n", + "18 18 s\n", + "19 19 l\n", + "10 10 r\n", + "11 11 s\n", + "12 12 s\n", + "13 13 s\n", + "14 14 l\n", + "0 0 r\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 l\n", + "\n", + "u00\n", + "5 5 s\n", + "6 6 s\n", + "7 7 s\n", + "8 8 s\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 t\n", + "\n", + "i0\n", + "0 0 r\n", + "1 1 s\n", + "2 2 s\n", + "3 3 l\n", + "8 8 r\n", + "9 9 s\n", + "10 10 s\n", + "11 11 s\n", + "12 12 s\n", + "13 13 l\n", + "14 14 r\n", + "15 15 s\n", + "16 16 l\n", + "4 4 r\n", + "5 5 s\n", + "6 6 s\n", + "7 7 l\n", + "\n", + "u60\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "6 6 s\n", + "7 7 s\n", + "8 8 t\n", + "\n", + "d12\n", + "\n", + "n13\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "\n", + "i8\n", + "8 8 r\n", + "9 9 s\n", + "10 10 s\n", + "11 11 l\n", + "0 0 r\n", + "1 1 s\n", + "2 2 s\n", + "3 3 l\n", + "4 4 s\n", + "5 5 s\n", + "6 6 s\n", + "7 7 l\n", + "12 12 r\n", + "13 13 s\n", + "14 14 s\n", + "15 15 l\n", + "\n", + "i9\n", + "2 2 s\n", + "3 3 s\n", + "0 0 s\n", + "1 1 s\n", + "\n", + "n14\n", + "2 -1 r\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "6 -1 s\n", + "7 -1 l\n", + "0 -1 r\n", + "1 -1 l\n", + "\n", + "n11\n", + "3 -1 s\n", + "4 -1 s\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "\n", + "i7\n", + "4 4 r\n", + "5 5 s\n", + "6 6 s\n", + "3 3 r\n", + "0 0 s\n", + "1 1 s\n", + "2 2 l\n", + "\n", + "u32\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "6 6 s\n", + "7 7 t\n", + "\n", + "n06\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "6 -1 s\n", + "\n", + "n09\n", + "4 -1 s\n", + "5 -1 s\n", + "6 -1 s\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "\n", + "i6\n", + "4 4 r\n", + "5 5 s\n", + "6 6 s\n", + "7 7 s\n", + "8 8 l\n", + "12 12 r\n", + "13 13 s\n", + "14 14 s\n", + "15 15 l\n", + "9 9 r\n", + "10 10 s\n", + "11 11 s\n", + "0 0 r\n", + "1 1 s\n", + "2 2 s\n", + "3 3 l\n", + "\n", + "i5\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "\n", + "n08\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 l\n", + "7 -1 r\n", + "8 -1 s\n", + "9 -1 s\n", + "10 -1 s\n", + "4 -1 r\n", + "5 -1 l\n", + "6 -1 l\n", + "\n", + "c30\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "\n", + "n00\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "0 -1 s\n", + "1 -1 s\n", + "\n", + "i1\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "6 6 l\n", + "0 0 r\n", + "1 1 s\n", + "2 2 s\n", + "7 7 r\n", + "8 8 l\n", + "9 9 l\n", + "\n", + "n10\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "6 -1 s\n", + "7 -1 t\n", + "\n", + "n04\n", + "5 -1 r\n", + "6 -1 s\n", + "7 -1 s\n", + "8 -1 s\n", + "9 -1 l\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 l\n", + "10 -1 r\n", + "4 -1 r\n", + "\n", + "n03\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "\n", + "i2\n", + "3 3 r\n", + "4 4 s\n", + "5 5 s\n", + "6 6 s\n", + "2 2 r\n", + "0 0 s\n", + "1 1 s\n", + "\n", + "n01\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "0 -1 s\n", + "1 -1 s\n", + "\n", + "n02\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "\n", + "d07\n", + "\n", + "d00\n", + "\n", + "n12\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 r\n", + "3 -1 l\n", + "4 -1 r\n", + "5 -1 s\n", + "6 -1 s\n", + "\n", + "d16\n", + "\n", + "d11\n", + "\n", + "d15\n", + "\n", + "d17\n", + "\n", + "n15\n", + "5 -1 s\n", + "6 -1 s\n", + "7 -1 s\n", + "8 -1 l\n", + "2 -1 r\n", + "3 -1 s\n", + "4 -1 s\n", + "0 -1 r\n", + "1 -1 l\n", + "\n", + "d18\n", + "\n", + "n07\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 l\n", + "7 -1 s\n", + "8 -1 s\n", + "9 -1 s\n", + "4 -1 r\n", + "5 -1 l\n", + "6 -1 l\n", + "\n", + "d08\n", + "\n", + "d14\n", + "\n", + "d13\n", + "\n", + "d04\n", + "\n", + "d09\n", + "\n", + "n05\n", + "0 -1 s\n", + "1 -1 s\n", + "2 -1 s\n", + "3 -1 s\n", + "4 -1 s\n", + "5 -1 s\n", + "6 -1 s\n", + "7 -1 s\n", + "8 -1 s\n", + "\n", + "u20\n", + "0 0 s\n", + "1 1 s\n", + "2 2 t\n", + "3 3 s\n", + "4 4 s\n", + "5 5 s\n", + "\n", + "d10\n", + "\n", + "d03\n", + "\n", + "d06\n", + "\n", + "d01\n", + "\n", + "d05\n", + "\n", + "u30\n", + "5 5 s\n", + "6 6 s\n", + "7 7 s\n", + "0 0 s\n", + "1 1 s\n", + "2 2 s\n", + "3 3 s\n", + "4 4 t\n", + "\n" + ] + } + ], + "source": [ + "nodes = self.net.getNodes()\n", + "for node in nodes:\n", + " node_id = node.getID()\n", + " print(node_id)\n", + " conns = [con for con in node.getConnections()]\n", + " for con in conns:\n", + " print(con.getJunctionIndex(), con.getTLLinkIndex(), con.getDirection())\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "'''Given `inter_no`, `inc_edge_id` and `out_edge_id`, we have `inc_vec = inter2inc2vec[inter_no][inc_edge_id]` and `out_vec = inter2out2vec[inter_no][out_edge_id]`.\n", + "Rotate `inc_vec` by 90, 180 and 270 degrees clockwise, to define \n", + "`out_vec_left`, `out_vec_straight` and `out_vec_right`.\n", + "Define `out_vecs={'right':out_vec_left, 'straight':out_vec_straight, 'right':out_vec_right}`.\n", + "Select the key that maximize the similarity of the corresponding value of the key and `inc_vec`.'''" ] } ], diff --git a/Data/tables/uturn.csv b/Data/tables/uturn.csv index e45af0cda..f5c589f18 100644 --- a/Data/tables/uturn.csv +++ b/Data/tables/uturn.csv @@ -1,4 +1,4 @@ -parent_id,child_id,head_edge_id,from_edge_id,to_edge_id +parent_id,child_id,head_edge_id,inc_edge_id,out_edge_id i0,u00,-571500487_01,571500487_02,571500487_01.32 i2,u20,571542811_02,571542810_01.51,571542810_02 i3,u30,571556450_02,571556452_01,571556452_02 diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 1021878b8ea79d093182fa103069a26c7dd49dac..95e89beb38db426ad894592d234d9e4f134b0dca 100644 GIT binary patch delta 6955 zcmZ`;4Rlk-m45S{-qVw0S@Mr$`4<^tgA6ucFwpQ5!e2-N1`;4dK#b7HLc*5J=ozs0 zsY(J#D2Y?jq1oLuKXO7yXw$Tf5|Zr6cH3>vrrVz6G^gF&)3K`Ww>5e-Nxu!@y|c1??vCXz4AjkrYfq z-D9#T^?41FmJKECD5|EE)@aqZTyCqps;zolrZv!7JEnl9j|OP)xMcW2&zY_&R*y@^ z$U1nStwwO&=~|l$oPZIeb;k&is033Yp;Cu#kf3YW7-pHSc<%71Z@4d>&CryQ%JRQ( zEhg*v+pd+QgL~Ywfqt$n%%9R!zRP_pspDtdJLW~T;XYK3dZrXJmKx7y8MPdl#9++Q za#?01DC^{YPaWyzb3E&{4)8>76VG|pmtOW9C1f`5^zNB)GjKsEOB1XKNE@1wx)oqM zf8P7pJRw8k*Aln`gmM~yCdpET#P;$`<)zRZU_?Ff1Bv*-HK|ODjj%f4un51$cc6L? zkd}%)=Gb0jck@fWZgOj>%dZf7)#_#ee;+(K9RLM`1Wr7Dd=CmLDfE$}iWh_1pl|hd;%ZHGFd*?(amh3t>LO0{)}GMNOy+%^K7k zgD2+zz}d02+#6lWE9?AZv~2rfzO?T3W!un#Ft`h;5JD2b(o;r)vFwrDR8N)?8yH|a zQREIjC)7?h@hzbxnmrQ!U?@&H`5!{{WP#}85XdDC+!13o|A>^EJyrHBH<+w zh(lExzoq#_@=)0U=Xq62uf7pXp!a#QWu}UrdzC-jLZ^wn#yvA)tN#pI*j9vVIZMtA zS!#^2*a%yNGI@ZAYES4sWZchRn9-@`fP9X>H{-T~3n+Xr4svIRBpDLyNZ5sG*x8gE zlF*QTJ$ zz5rO#)=7Ie%3KxGA!ZXy*U<_vkNM2@LeNyPC9j$ASN4gJN<$_~2TaEb>Cgw% zODn05`e_xdrZu!SsY6#GXs?GyWJmaQ!Q+9afd(Ge@=l|%U^Jzhi!H#KL4%MW>yF7^ zug>d6xY%ksO?_M@(j8Kdv`xBA+9eq?X{ek8>w7J2D8>>Q1Jc%k)Bt7Ou!MF{EJ8|b z?;}XrQ4f^m7)bOR5yestWRF-*c;RQeef+|TtqzF#JNa`f78Y>#jp`|y>q_Uc8H*el z-T<71ojqOQiD%xJcJF&N2eD$_gzIl~Xn*py87k4e0O?r6M4J`#r0pD1T z{?x!1vi)@+`$KqgO8_L&0)N${T4_?6h@Vsv$7Qz?QZ(Ww4Zv?9LB&DJf0r~ZM1t~Y z>$+HKU}P&x46$rHk%Kd+>vLzcY~=X29liWe_%P)855jHaeSVKxQ)+FUIhpv?7oqcs z(w>>B(uD3{y$BuzJla_mKm<}1&$qQ{m}eBipKr@J*;#Du>VgxzZ!mipmPoaKWZG|$6g!C)rgg~I&R*{OYh;SkwFK1vl*VQck=T@w z7|;r6v7BhDFOy}fQDY^781he$x)I``p`1pqkn&*8_CvzcDlMndm7Z2Sj=9SCT_(gtHj{J
7704OIs3Ou>hvV@smDw1(bl2F~H<)Sh! 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 T*5aTc#QOM#BO_L7Co1`Wj#D#h diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py index aea0a228d..86c47b9fa 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -60,6 +60,8 @@ class DailyPreprocessor(): self.plan = pd.read_csv(os.path.join(self.path_tables, 'plan.csv'), dtype=loading_dtype) self.inter_node = pd.read_csv(os.path.join(self.path_tables, 'inter_node.csv'), dtype=loading_dtype) self.uturn = pd.read_csv(os.path.join(self.path_tables, 'child_uturn.csv'), dtype=loading_dtype) + self.u_turn = pd.read_csv(os.path.join(self.path_tables, 'uturn.csv'), dtype=loading_dtype) + self.u_condition= pd.read_csv(os.path.join(self.path_tables, 'u_condition.csv'), dtype=loading_dtype) self.coord = pd.read_csv(os.path.join(self.path_tables, 'child_coord.csv'), dtype=loading_dtype) self.nema = pd.read_csv(os.path.join(self.path_tables, 'nema.csv'), encoding='cp949', dtype=loading_dtype)