diff --git a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb
index 1a51fea20..5c8967713 100644
--- a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb
+++ b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb
@@ -29,20 +29,808 @@
"1-2. 테이블들이 로드되었습니다.\n",
"1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
"1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
- "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n",
- "2-1. 매칭 테이블들을 생성했습니다.\n"
+ "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n"
]
}
],
"source": [
- "self = DailyPreprocessor()\n",
- "self.load_data() # 1. 데이터 불러오기\n",
- "self.get_matches() # 2-1 매칭테이블 생성"
+ "self = DailyPreprocessor()\n",
+ "self.load_data() # 1. 데이터 불러오기\n",
+ "self.make_match1() # 2-1-1\n",
+ "self.make_match2() # 2-1-2\n",
+ "self.make_match3() # 2-1-3\n",
+ "self.make_match4() # 2-1-4\n",
+ "self.make_match5() # 2-1-5\n",
+ "self.make_match6() # 2-1-6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phase_no | \n",
+ " ring_type | \n",
+ " move_no | \n",
+ " inc_dire | \n",
+ " out_dire | \n",
+ " inc_angle | \n",
+ " out_angle | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 179 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 001 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 001 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 179 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " 090 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 356 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 359 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 356 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 180 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 356 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 179 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 000 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 180 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " 090 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 180 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " 090 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " A | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 40 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 41 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 42 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 43 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 44 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 45 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 46 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 47 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 48 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ "
\n",
+ " \n",
+ " 49 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 50 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 51 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 52 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 000 | \n",
+ " 090 | \n",
+ "
\n",
+ " \n",
+ " 53 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ "
\n",
+ " \n",
+ " 54 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ "
\n",
+ " \n",
+ " 55 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 180 | \n",
+ " 270 | \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",
+ "5 175 3 B 1 동 남 090 \n",
+ "6 175 4 A 5 서 북 270 \n",
+ "7 175 4 B 2 서 동 270 \n",
+ "8 176 1 A 8 남 북 180 \n",
+ "9 176 1 B 4 북 남 359 \n",
+ "10 176 2 A 8 남 북 180 \n",
+ "11 176 2 B 3 남 서 180 \n",
+ "12 176 3 A 5 서 북 270 \n",
+ "13 176 3 B 18 NaN NaN NaN \n",
+ "14 177 1 A 8 남 북 179 \n",
+ "15 177 1 B 4 북 남 000 \n",
+ "16 177 2 A 17 NaN NaN NaN \n",
+ "17 177 2 B 18 NaN NaN NaN \n",
+ "18 178 1 A 8 남 북 180 \n",
+ "19 178 1 B 4 북 남 000 \n",
+ "20 178 2 A 7 북 동 000 \n",
+ "21 178 2 B 3 남 서 180 \n",
+ "22 178 3 A 5 서 북 270 \n",
+ "23 178 3 B 2 서 동 270 \n",
+ "24 178 4 A 6 동 서 090 \n",
+ "25 178 4 B 1 동 남 090 \n",
+ "26 201 1 A 8 남 북 180 \n",
+ "27 201 1 B 3 남 서 180 \n",
+ "28 201 2 A 5 서 북 270 \n",
+ "29 201 2 B 2 서 동 270 \n",
+ "30 201 3 A 6 동 서 090 \n",
+ "31 201 3 B 2 서 동 270 \n",
+ "32 201 4 A 6 동 서 090 \n",
+ "33 201 4 B 1 동 남 090 \n",
+ "34 201 5 A 4 북 남 000 \n",
+ "35 201 5 B 4 북 남 000 \n",
+ "36 202 1 A 6 동 서 090 \n",
+ "37 202 1 B 2 서 동 270 \n",
+ "38 202 2 A 17 NaN NaN NaN \n",
+ "39 202 2 B 18 NaN NaN NaN \n",
+ "40 206 1 A 8 남 북 180 \n",
+ "41 206 1 B 4 북 남 000 \n",
+ "42 206 2 A 17 NaN NaN NaN \n",
+ "43 206 2 B 18 NaN NaN NaN \n",
+ "44 206 3 A 8 남 북 180 \n",
+ "45 206 3 B 4 북 남 000 \n",
+ "46 206 4 A 17 NaN NaN NaN \n",
+ "47 206 4 B 18 NaN NaN NaN \n",
+ "48 210 1 A 6 동 서 090 \n",
+ "49 210 1 B 18 NaN NaN NaN \n",
+ "50 210 2 A 5 서 북 270 \n",
+ "51 210 2 B 2 서 동 270 \n",
+ "52 210 3 A 7 북 동 000 \n",
+ "53 210 3 B 4 북 남 000 \n",
+ "54 210 4 A 8 남 북 180 \n",
+ "55 210 4 B 3 남 서 180 \n",
+ "\n",
+ " out_angle \n",
+ "0 000 \n",
+ "1 180 \n",
+ "2 090 \n",
+ "3 270 \n",
+ "4 270 \n",
+ "5 180 \n",
+ "6 000 \n",
+ "7 090 \n",
+ "8 356 \n",
+ "9 180 \n",
+ "10 356 \n",
+ "11 270 \n",
+ "12 356 \n",
+ "13 NaN \n",
+ "14 000 \n",
+ "15 180 \n",
+ "16 NaN \n",
+ "17 NaN \n",
+ "18 000 \n",
+ "19 180 \n",
+ "20 090 \n",
+ "21 270 \n",
+ "22 000 \n",
+ "23 090 \n",
+ "24 270 \n",
+ "25 180 \n",
+ "26 000 \n",
+ "27 270 \n",
+ "28 000 \n",
+ "29 090 \n",
+ "30 270 \n",
+ "31 090 \n",
+ "32 270 \n",
+ "33 180 \n",
+ "34 180 \n",
+ "35 180 \n",
+ "36 270 \n",
+ "37 090 \n",
+ "38 NaN \n",
+ "39 NaN \n",
+ "40 000 \n",
+ "41 180 \n",
+ "42 NaN \n",
+ "43 NaN \n",
+ "44 000 \n",
+ "45 180 \n",
+ "46 NaN \n",
+ "47 NaN \n",
+ "48 270 \n",
+ "49 NaN \n",
+ "50 000 \n",
+ "51 090 \n",
+ "52 090 \n",
+ "53 180 \n",
+ "54 000 \n",
+ "55 270 "
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.match4"
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -51,13 +839,13 @@
"{'u00': 4, 'u20': 2, 'u30': 4, 'u31': 4, 'u32': 7, 'u60': 8}"
]
},
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "self.uid2uindex"
+ "self.p2PLindices = dict() # parent id to protected left index\n"
]
},
{
@@ -452,7 +1240,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -461,7 +1249,7 @@
"{'u00': 4, 'u20': 2, 'u30': 4, 'u31': 4, 'u32': 7, 'u60': 8}"
]
},
- "execution_count": 9,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -472,7 +1260,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -539,7 +1327,6 @@
"# 신호가 부여되어 있는 경우에는 r을 부여 (우회전 : g, 그외 : r / 유턴x : G, 유턴 : r)\n",
"for _, row in self.match6.dropna(subset=['inc_edge_id', 'out_edge_id']).iterrows():\n",
" node_id = row.node_id\n",
- " move_no = row.move_no\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",
@@ -548,13 +1335,14 @@
" index = conn.getTLLinkIndex()\n",
" if index >= 0:\n",
" self.node2init[node_id][index] = 'r'\n",
+ "\n",
"for node_id in self.node2init:\n",
" print(node_id, ''.join(self.node2init[node_id]))"
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
@@ -1143,7 +1931,7 @@
"\n",
"self.matching = self.matching.dropna(subset='state')\n",
"self.matching = self.matching.reset_index(drop=True)\n",
- "self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'inc_edge_id', 'out_edge_id', 'state']]\n"
+ "self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'inc_edge_id', 'out_edge_id', 'state']]"
]
},
{
diff --git a/Results/sn_1704419100.add.xml b/Results/sn_1704419100.add.xml
index dd5363371..478a48041 100644
--- a/Results/sn_1704419100.add.xml
+++ b/Results/sn_1704419100.add.xml
@@ -1,5 +1,5 @@
-
+
@@ -44,17 +44,17 @@
-
-
+
+
-
+
-
+
@@ -84,81 +84,61 @@
-
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -203,110 +183,110 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -319,8 +299,8 @@
-
-
+
+
@@ -334,14 +314,23 @@
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
@@ -354,291 +343,279 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc
index 29113bb9e..88be26f2a 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/preprocess_daily.py b/Scripts/preprocess_daily.py
index 93027c14b..385e4c9a4 100644
--- a/Scripts/preprocess_daily.py
+++ b/Scripts/preprocess_daily.py
@@ -402,6 +402,9 @@ class DailyPreprocessor():
turn_type = self.n2io2turn[node_id][(inc_edge_id, out_edge_id)]
self.match5.at[i, 'turn_type'] = turn_type
+ self.p2PLindices = dict() # parent id to protected left index
+
+
# 2-1-6
def make_match6(self):
'''
@@ -435,7 +438,7 @@ class DailyPreprocessor():
out_angle2edge = dict(zip(m5.out_angle.astype(int), m5.out_edge_id))
p2out_angle2edge[node_id] = out_angle2edge
- self.uid2uindex = dict() # u_turn node id to u_turn index
+ self.u2uindex = dict() # u_turn node id to u_turn index
# 각 uturn node에 대하여 (inc_edge_id, out_edge_id) 부여
cmatches = []
@@ -448,11 +451,11 @@ class DailyPreprocessor():
adj_inc_edge_id = row.adj_inc_edge_id
adj_out_edge_id = row.adj_out_edge_id
- # self.uid2uindex 지정
+ # self.u2uindex 지정
inc_edge = self.net.getEdge(inc_edge_id)
out_edge = self.net.getEdge(out_edge_id)
u_turn_conn = inc_edge.getConnections(out_edge)[0]
- self.uid2uindex[child_id] = u_turn_conn.getTLLinkIndex()
+ self.u2uindex[child_id] = u_turn_conn.getTLLinkIndex()
# match5에서 부모노드id에 해당하는 행들을 가져옴 (cmatch)
cmatch = self.match5.copy()[self.match5.node_id==parent_id] # match dataframe for a child node
@@ -547,12 +550,6 @@ class DailyPreprocessor():
self.match6 = pd.concat([self.match5, cmatches, self.coord]).drop_duplicates().sort_values(by=['inter_no', 'node_id', 'phase_no', 'ring_type'])
self.match6 = self.match6.reset_index(drop=True)
-
- # json 파일로 저장 # to be deprecated
- with open(os.path.join(self.path_intermediates, 'uid2uindex.json'), 'w') as file:
- json.dump(self.uid2uindex, file)
-
-
# 2-1-7
def make_matching(self):
'''
@@ -734,7 +731,6 @@ class DailyPreprocessor():
# 신호가 부여되어 있는 경우에는 r을 부여 (우회전 : g, 그외 : r / 유턴x : G, 유턴 : r)
for _, row in self.match6.dropna(subset=['inc_edge_id', 'out_edge_id']).iterrows():
node_id = row.node_id
- move_no = row.move_no
inc_edge_id = row.inc_edge_id
out_edge_id = row.out_edge_id
inc_edge = self.net.getEdge(inc_edge_id)