diff --git a/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb b/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb
index 6c6147767..58f0aab09 100644
--- a/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb
+++ b/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -55,7 +55,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -193,7 +193,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -318,248 +318,45 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.match7 = self.match6.copy()\n",
+ "self.match7 = self.match7[['inter_no', 'move_no', 'inc_dire', 'out_dire', 'inc_edge_id', 'out_edge_id', 'node_id']]\n",
+ "\n",
+ "# (1) 가능한 (진입방향, 진출방향) 목록 \n",
+ "flows = self.nema.dropna().apply(lambda row: (row['inc_dire'], row['out_dire']), axis=1).tolist()\n",
+ "# (2) 각 교차로별 방향 목록 : pdires (possible directions)\n",
+ "pdires = {}\n",
+ "for node_id in self.parent_ids:\n",
+ " dires = self.match7[self.match7.node_id == node_id][['inc_dire','out_dire']].values.flatten()\n",
+ " dires = {dire for dire in dires if type(dire)==str}\n",
+ " pdires[node_id] = dires\n",
+ "# (3) 각 (교차로, 진입방향) 별 진입id 목록 : inc2id (incoming direction to incoming edge_id)\n",
+ "inc2id = {}\n",
+ "for node_id in self.parent_ids:\n",
+ " for inc_dire in pdires[node_id]:\n",
+ " df = self.match7[(self.match7.node_id==node_id) & (self.match7.inc_dire==inc_dire)]\n",
+ " inc2id[(node_id, inc_dire)] = df.inc_edge_id.iloc[0]\n",
+ "# (4) 각 (교차로, 진출방향) 별 진출id 목록 : out2id (outgoing direction to outgoing edge_id)\n",
+ "out2id = {}\n",
+ "for node_id in self.parent_ids:\n",
+ " for out_dire in pdires[node_id]:\n",
+ " df = self.match7[(self.match7.node_id==node_id) & (self.match7.out_dire==out_dire)]\n",
+ " out2id[(node_id, out_dire)] = df.out_edge_id.iloc[0]\n",
+ "# (5) 각 교차로별 가능한 (진입방향, 진출방향) 목록 : pflow (possible flows)\n",
+ "pflow = {}\n",
+ "for node_id in self.parent_ids:\n",
+ " pflow[node_id] = [flow for flow in flows if set(flow).issubset(pdires[node_id])]\n",
+ "# display(pflow)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
"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",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 175 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " -571542797_02 | \n",
- " 571500487_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 175 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 001 | \n",
- " 180 | \n",
- " -571500487_01 | \n",
- " 571542797_02 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 175 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 001 | \n",
- " 090 | \n",
- " -571500487_01 | \n",
- " 571545870_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 175 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 179 | \n",
- " 270 | \n",
- " -571542797_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 175 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571545870_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 103 | \n",
- " 210 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 104 | \n",
- " 210 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 105 | \n",
- " 210 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 106 | \n",
- " 210 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 107 | \n",
- " 210 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- "
\n",
- " \n",
- "
\n",
- "
108 rows × 12 columns
\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",
- ".. ... ... ... ... ... ... ... \n",
- "103 210 2 B 2 서 동 270 \n",
- "104 210 3 A 7 북 동 000 \n",
- "105 210 3 B 4 북 남 000 \n",
- "106 210 4 A 8 남 북 180 \n",
- "107 210 4 B 3 남 서 180 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "0 000 -571542797_02 571500487_01 i0 straight \n",
- "1 180 -571500487_01 571542797_02 i0 straight \n",
- "2 090 -571500487_01 571545870_01 i0 left \n",
- "3 270 -571542797_02 571510153_01 i0 left \n",
- "4 270 571545870_02 571510153_01 i0 straight \n",
- ".. ... ... ... ... ... \n",
- "103 090 NaN NaN u60 straight \n",
- "104 090 NaN NaN u60 left \n",
- "105 180 NaN NaN u60 straight \n",
- "106 000 NaN NaN u60 straight \n",
- "107 270 NaN NaN u60 left \n",
- "\n",
- "[108 rows x 12 columns]"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
{
"data": {
"text/html": [
@@ -652,7 +449,7 @@
" ... | \n",
" \n",
" \n",
- " 60 | \n",
+ " 67 | \n",
" 210 | \n",
" 21 | \n",
" 북 | \n",
@@ -662,7 +459,7 @@
" i6 | \n",
"
\n",
" \n",
- " 61 | \n",
+ " 68 | \n",
" 210 | \n",
" 21 | \n",
" 서 | \n",
@@ -672,7 +469,7 @@
" i6 | \n",
"
\n",
" \n",
- " 62 | \n",
+ " 69 | \n",
" 210 | \n",
" 21 | \n",
" 남 | \n",
@@ -682,7 +479,7 @@
" i6 | \n",
"
\n",
" \n",
- " 63 | \n",
+ " 70 | \n",
" 210 | \n",
" 21 | \n",
" 동 | \n",
@@ -692,7 +489,7 @@
" i6 | \n",
"
\n",
" \n",
- " 64 | \n",
+ " 71 | \n",
" 210 | \n",
" 5 | \n",
" 서 | \n",
@@ -703,7 +500,7 @@
"
\n",
" \n",
"\n",
- "65 rows × 7 columns
\n",
+ "72 rows × 7 columns
\n",
""
],
"text/plain": [
@@ -714,11 +511,11 @@
"3 175 4 북 남 -571500487_01 571542797_02 \n",
"4 175 5 서 북 571510153_02 571500487_01 \n",
".. ... ... ... ... ... ... \n",
- "60 210 21 북 서 571511538_02.121 571500535_01 \n",
- "61 210 21 서 남 571500535_02.18 571500585_01 \n",
- "62 210 21 남 동 571500585_02 571542115_01 \n",
- "63 210 21 동 북 -571542115_01 571511538_01 \n",
- "64 210 5 서 북 571500535_02 -571500535_02 \n",
+ "67 210 21 북 서 571511538_02.121 571500535_01 \n",
+ "68 210 21 서 남 571500535_02.18 571500585_01 \n",
+ "69 210 21 남 동 571500585_02 571542115_01 \n",
+ "70 210 21 동 북 -571542115_01 571511538_01 \n",
+ "71 210 5 서 북 571500535_02 -571500535_02 \n",
"\n",
" node_id \n",
"0 i0 \n",
@@ -727,65 +524,1532 @@
"3 i0 \n",
"4 i0 \n",
".. ... \n",
- "60 i6 \n",
- "61 i6 \n",
- "62 i6 \n",
- "63 i6 \n",
- "64 u60 \n",
+ "67 i6 \n",
+ "68 i6 \n",
+ "69 i6 \n",
+ "70 i6 \n",
+ "71 u60 \n",
"\n",
- "[65 rows x 7 columns]"
+ "[72 rows x 7 columns]"
]
},
+ "execution_count": 3,
"metadata": {},
- "output_type": "display_data"
+ "output_type": "execute_result"
}
],
"source": [
"self.make_match6()\n",
- "display(self.match6)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "self.match6"
+ "self.make_matching()\n",
+ "self.matching"
]
},
{
"cell_type": "code",
- "execution_count": 123,
+ "execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "2. 중간산출물을 생성합니다.\n",
- "2-1. 매칭 테이블들을 생성했습니다.\n",
- "2-2. 비보호우회전(g)을 배정했습니다.\n",
- "2-3. 직진 및 좌회전(G)을 배정했습니다.\n",
- "2-2. node2num_cycles.json를 저장했습니다.\n"
+ "[('동', '남'), ('서', '동'), ('남', '서'), ('북', '남'), ('서', '북'), ('동', '서'), ('북', '동'), ('남', '북'), ('북동', '남동'), ('남서', '북동'), ('남동', '남서'), ('북서', '남동'), ('남서', '북서'), ('북동', '남서'), ('북서', '북동'), ('남동', '북서')]\n",
+ "{'i0': {'서', '북', '동', '남'}, 'i1': {'서', '북', '남'}, 'i2': {'북', '남'}, 'i3': {'서', '북', '동', '남'}, 'i6': {'북', '서', '동', '남'}, 'i7': {'북', '남'}, 'i8': {'서', '북', '동', '남'}, 'i9': {'서', '동'}}\n",
+ "{('i0', '서'): '571510153_02', ('i0', '북'): '-571500487_01', ('i0', '동'): '571545870_02', ('i0', '남'): '-571542797_02', ('i1', '서'): '571543469_02', ('i1', '북'): '571542797_02.99', ('i1', '남'): '-571542810_01', ('i2', '북'): '571542811_02', ('i2', '남'): '-571542809_01', ('i3', '서'): '571540303_02.21', ('i3', '북'): '571556450_02', ('i3', '동'): '-571500475_01', ('i3', '남'): '571540304_02', ('i6', '북'): '571511538_02.121', ('i6', '서'): '571500535_02.18', ('i6', '동'): '-571542115_01', ('i6', '남'): '571500585_02', ('i7', '북'): '571542073_01', ('i7', '남'): '-571511538_02', ('i8', '서'): '571500618_02', ('i8', '북'): '571500583_01', ('i8', '동'): '571500617_02', ('i8', '남'): '-571500569_01', ('i9', '서'): '571510152_01', ('i9', '동'): '571510152_02'}\n",
+ "{('i0', '서'): '571510153_01', ('i0', '북'): '571500487_01', ('i0', '동'): '571545870_01', ('i0', '남'): '571542797_02', ('i1', '서'): '571543469_01', ('i1', '북'): '-571542797_02.99', ('i1', '남'): '571542810_01', ('i2', '북'): '571542811_01', ('i2', '남'): '571542809_01', ('i3', '서'): '571540303_01', ('i3', '북'): '571556450_01', ('i3', '동'): '571500475_01', ('i3', '남'): '571540304_01', ('i6', '북'): '571511538_01', ('i6', '서'): '571500535_01', ('i6', '동'): '571542115_01', ('i6', '남'): '571500585_01', ('i7', '북'): '571542073_02', ('i7', '남'): '571511538_02', ('i8', '서'): '571500618_01', ('i8', '북'): '571500583_02', ('i8', '동'): '571500617_01', ('i8', '남'): '571500569_01', ('i9', '서'): '-571510152_01', ('i9', '동'): '571510152_01.65'}\n",
+ "{'i0': [('동', '남'), ('서', '동'), ('남', '서'), ('북', '남'), ('서', '북'), ('동', '서'), ('북', '동'), ('남', '북')], 'i1': [('남', '서'), ('북', '남'), ('서', '북'), ('남', '북')], 'i2': [('북', '남'), ('남', '북')], 'i3': [('동', '남'), ('서', '동'), ('남', '서'), ('북', '남'), ('서', '북'), ('동', '서'), ('북', '동'), ('남', '북')], 'i6': [('동', '남'), ('서', '동'), ('남', '서'), ('북', '남'), ('서', '북'), ('동', '서'), ('북', '동'), ('남', '북')], 'i7': [('북', '남'), ('남', '북')], 'i8': [('동', '남'), ('서', '동'), ('남', '서'), ('북', '남'), ('서', '북'), ('동', '서'), ('북', '동'), ('남', '북')], 'i9': [('서', '동'), ('동', '서')]}\n"
]
}
],
"source": [
- "self.get_intermediates()"
+ "print(flows)\n",
+ "print(pdires)\n",
+ "print(inc2id)\n",
+ "print(out2id)\n",
+ "print(pflow)"
]
},
{
"cell_type": "code",
- "execution_count": 52,
+ "execution_count": null,
"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",
+ " inc_edge_id | \n",
+ " out_edge_id | \n",
+ " node_id | \n",
+ " turn_type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 179 | \n",
+ " 000 | \n",
+ " -571542797_02 | \n",
+ " 571500487_01 | \n",
+ " i0 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 001 | \n",
+ " 180 | \n",
+ " -571500487_01 | \n",
+ " 571542797_02 | \n",
+ " i0 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 001 | \n",
+ " 090 | \n",
+ " -571500487_01 | \n",
+ " 571545870_01 | \n",
+ " i0 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 179 | \n",
+ " 270 | \n",
+ " -571542797_02 | \n",
+ " 571510153_01 | \n",
+ " i0 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ " 571545870_02 | \n",
+ " 571510153_01 | \n",
+ " i0 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " 090 | \n",
+ " 180 | \n",
+ " 571545870_02 | \n",
+ " 571542797_02 | \n",
+ " i0 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ " 571510153_02 | \n",
+ " 571500487_01 | \n",
+ " i0 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ " 571510153_02 | \n",
+ " 571545870_01 | \n",
+ " i0 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 001 | \n",
+ " 090 | \n",
+ " 571500487_02 | \n",
+ " 571500487_01.32 | \n",
+ " u00 | \n",
+ " left | \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 175 2 A 7 북 동 001 \n",
+ "\n",
+ " out_angle inc_edge_id out_edge_id node_id turn_type \n",
+ "0 000 -571542797_02 571500487_01 i0 straight \n",
+ "1 180 -571500487_01 571542797_02 i0 straight \n",
+ "2 090 -571500487_01 571545870_01 i0 left \n",
+ "3 270 -571542797_02 571510153_01 i0 left \n",
+ "4 270 571545870_02 571510153_01 i0 straight \n",
+ "5 180 571545870_02 571542797_02 i0 left \n",
+ "6 000 571510153_02 571500487_01 i0 left \n",
+ "7 090 571510153_02 571545870_01 i0 straight \n",
+ "8 090 571500487_02 571500487_01.32 u00 left "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " 571545870_02 | \n",
+ " 571542797_02 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 571510153_02 | \n",
+ " 571545870_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " -571542797_02 | \n",
+ " 571510153_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " -571500487_01 | \n",
+ " 571542797_02 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 175 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 571510153_02 | \n",
+ " 571500487_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 175 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 571545870_02 | \n",
+ " 571510153_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 175 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " -571500487_01 | \n",
+ " 571545870_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 175 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " -571542797_02 | \n",
+ " 571500487_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 175 | \n",
+ " 21 | \n",
+ " 북 | \n",
+ " 서 | \n",
+ " -571500487_01 | \n",
+ " 571510153_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 175 | \n",
+ " 21 | \n",
+ " 서 | \n",
+ " 남 | \n",
+ " 571510153_02 | \n",
+ " 571542797_02 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 175 | \n",
+ " 21 | \n",
+ " 남 | \n",
+ " 동 | \n",
+ " -571542797_02 | \n",
+ " 571545870_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 21 | \n",
+ " 동 | \n",
+ " 북 | \n",
+ " 571545870_02 | \n",
+ " 571500487_01 | \n",
+ " i0 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 175 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 571500487_02 | \n",
+ " 571500487_01.32 | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ "5 175 6 동 서 571545870_02 571510153_01 \n",
+ "6 175 7 북 동 -571500487_01 571545870_01 \n",
+ "7 175 8 남 북 -571542797_02 571500487_01 \n",
+ "8 175 21 북 서 -571500487_01 571510153_01 \n",
+ "9 175 21 서 남 571510153_02 571542797_02 \n",
+ "10 175 21 남 동 -571542797_02 571545870_01 \n",
+ "11 175 21 동 북 571545870_02 571500487_01 \n",
+ "12 175 7 북 동 571500487_02 571500487_01.32 \n",
+ "\n",
+ " node_id \n",
+ "0 i0 \n",
+ "1 i0 \n",
+ "2 i0 \n",
+ "3 i0 \n",
+ "4 i0 \n",
+ "5 i0 \n",
+ "6 i0 \n",
+ "7 i0 \n",
+ "8 i0 \n",
+ "9 i0 \n",
+ "10 i0 \n",
+ "11 i0 \n",
+ "12 u00 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "self.make_matching()\n",
+ "match6 = self.match6.dropna().reset_index(drop=True)\n",
+ "matching = self.matching\n",
+ "display(match6[match6.inter_no==175])\n",
+ "display(matching[matching.inter_no==175])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.parent_ids"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 571510152_01 | \n",
+ " 571510152_01.65 | \n",
+ " i9 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id node_id\n",
+ "0 202 2 서 동 571510152_01 571510152_01.65 i9"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 202 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 571510152_02 | \n",
+ " -571510152_01 | \n",
+ " i9 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id node_id\n",
+ "0 202 6 동 서 571510152_02 -571510152_01 i9"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "node_id = self.parent_ids[7]\n",
+ "inter_no = self.node2inter[node_id]\n",
+ "for (inc_dire, out_dire) in pflow[node_id]:\n",
+ " move_no = self.nema[(self.nema.inc_dire==inc_dire) & (self.nema.out_dire==out_dire)].move_no.iloc[0]\n",
+ " inc_edge_id = inc2id[(node_id, inc_dire)]\n",
+ " out_edge_id = out2id[(node_id, out_dire)]\n",
+ " new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[move_no],\n",
+ " 'inc_dire':[inc_dire], 'out_dire':[out_dire],\n",
+ " 'inc_edge_id':[inc_edge_id], 'out_edge_id':[out_edge_id], 'node_id':[node_id]})\n",
+ " display(new_row)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "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",
+ " inc_edge_id | \n",
+ " out_edge_id | \n",
+ " node_id | \n",
+ " turn_type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 26 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 179 | \n",
+ " 000 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542810_01.51 | \n",
+ " 571542810_02 | \n",
+ " u20 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
+ "26 177 1 A 8 남 북 179 \n",
+ "27 177 1 B 4 북 남 000 \n",
+ "28 177 2 A 17 NaN NaN NaN \n",
+ "29 177 2 B 18 NaN NaN NaN \n",
+ "\n",
+ " out_angle inc_edge_id out_edge_id node_id turn_type \n",
+ "26 000 NaN NaN u20 straight \n",
+ "27 180 NaN NaN u20 straight \n",
+ "28 NaN 571542810_01.51 571542810_02 u20 NaN \n",
+ "29 NaN NaN NaN u20 NaN "
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.match6[self.match6.node_id=='u20']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 8 | \n",
+ " 175 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 175 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 571500487_02 | \n",
+ " 571500487_01.32 | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 175 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 175 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u00 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 177 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542810_01.51 | \n",
+ " 571542810_02 | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 177 | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_01 | \n",
+ " -571542116_02.96 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_02.96 | \n",
+ " 571542116_02.164 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_01 | \n",
+ " -571542116_02.96 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_02.96 | \n",
+ " 571542116_02.164 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_01 | \n",
+ " -571542116_02.96 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 178 | \n",
+ " 20 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542116_02.96 | \n",
+ " 571542116_02.164 | \n",
+ " c30 | \n",
+ "
\n",
+ " \n",
+ " 46 | \n",
+ " 178 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 47 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 48 | \n",
+ " 178 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 49 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 50 | \n",
+ " 178 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 51 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 52 | \n",
+ " 178 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 571556452_01 | \n",
+ " 571556452_02 | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 53 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u30 | \n",
+ "
\n",
+ " \n",
+ " 54 | \n",
+ " 178 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 571500475_02 | \n",
+ " 571500475_01.26 | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 55 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 56 | \n",
+ " 178 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 57 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 58 | \n",
+ " 178 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 59 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 60 | \n",
+ " 178 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 61 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u31 | \n",
+ "
\n",
+ " \n",
+ " 62 | \n",
+ " 178 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 63 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 571540303_02 | \n",
+ " -571540303_02 | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 64 | \n",
+ " 178 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 65 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 66 | \n",
+ " 178 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 67 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 68 | \n",
+ " 178 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 69 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 동 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u32 | \n",
+ "
\n",
+ " \n",
+ " 100 | \n",
+ " 210 | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 101 | \n",
+ " 210 | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 102 | \n",
+ " 210 | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 571500535_02 | \n",
+ " -571500535_02 | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 103 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 104 | \n",
+ " 210 | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 105 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 106 | \n",
+ " 210 | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ " 107 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " u60 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id \\\n",
+ "8 175 8 남 북 NaN NaN \n",
+ "9 175 4 북 남 NaN NaN \n",
+ "10 175 7 북 동 571500487_02 571500487_01.32 \n",
+ "11 175 3 남 서 NaN NaN \n",
+ "12 175 6 동 서 NaN NaN \n",
+ "13 175 1 동 남 NaN NaN \n",
+ "14 175 5 서 북 NaN NaN \n",
+ "15 175 2 서 동 NaN NaN \n",
+ "26 177 8 남 북 NaN NaN \n",
+ "27 177 4 북 남 NaN NaN \n",
+ "28 177 17 NaN NaN 571542810_01.51 571542810_02 \n",
+ "29 177 18 NaN NaN NaN NaN \n",
+ "30 178 20 NaN NaN NaN NaN \n",
+ "31 178 20 NaN NaN NaN NaN \n",
+ "32 178 20 NaN NaN 571542116_01 -571542116_02.96 \n",
+ "33 178 20 NaN NaN 571542116_02.96 571542116_02.164 \n",
+ "34 178 20 NaN NaN 571542116_01 -571542116_02.96 \n",
+ "35 178 20 NaN NaN 571542116_02.96 571542116_02.164 \n",
+ "36 178 20 NaN NaN 571542116_01 -571542116_02.96 \n",
+ "37 178 20 NaN NaN 571542116_02.96 571542116_02.164 \n",
+ "46 178 8 남 북 NaN NaN \n",
+ "47 178 4 북 남 NaN NaN \n",
+ "48 178 7 북 동 NaN NaN \n",
+ "49 178 3 남 서 NaN NaN \n",
+ "50 178 5 서 북 NaN NaN \n",
+ "51 178 2 서 동 NaN NaN \n",
+ "52 178 6 동 서 571556452_01 571556452_02 \n",
+ "53 178 1 동 남 NaN NaN \n",
+ "54 178 8 남 북 571500475_02 571500475_01.26 \n",
+ "55 178 4 북 남 NaN NaN \n",
+ "56 178 7 북 동 NaN NaN \n",
+ "57 178 3 남 서 NaN NaN \n",
+ "58 178 5 서 북 NaN NaN \n",
+ "59 178 2 서 동 NaN NaN \n",
+ "60 178 6 동 서 NaN NaN \n",
+ "61 178 1 동 남 NaN NaN \n",
+ "62 178 8 남 북 NaN NaN \n",
+ "63 178 4 북 남 571540303_02 -571540303_02 \n",
+ "64 178 7 북 동 NaN NaN \n",
+ "65 178 3 남 서 NaN NaN \n",
+ "66 178 5 서 북 NaN NaN \n",
+ "67 178 2 서 동 NaN NaN \n",
+ "68 178 6 동 서 NaN NaN \n",
+ "69 178 1 동 남 NaN NaN \n",
+ "100 210 6 동 서 NaN NaN \n",
+ "101 210 18 NaN NaN NaN NaN \n",
+ "102 210 5 서 북 571500535_02 -571500535_02 \n",
+ "103 210 2 서 동 NaN NaN \n",
+ "104 210 7 북 동 NaN NaN \n",
+ "105 210 4 북 남 NaN NaN \n",
+ "106 210 8 남 북 NaN NaN \n",
+ "107 210 3 남 서 NaN NaN \n",
+ "\n",
+ " node_id \n",
+ "8 u00 \n",
+ "9 u00 \n",
+ "10 u00 \n",
+ "11 u00 \n",
+ "12 u00 \n",
+ "13 u00 \n",
+ "14 u00 \n",
+ "15 u00 \n",
+ "26 u20 \n",
+ "27 u20 \n",
+ "28 u20 \n",
+ "29 u20 \n",
+ "30 c30 \n",
+ "31 c30 \n",
+ "32 c30 \n",
+ "33 c30 \n",
+ "34 c30 \n",
+ "35 c30 \n",
+ "36 c30 \n",
+ "37 c30 \n",
+ "46 u30 \n",
+ "47 u30 \n",
+ "48 u30 \n",
+ "49 u30 \n",
+ "50 u30 \n",
+ "51 u30 \n",
+ "52 u30 \n",
+ "53 u30 \n",
+ "54 u31 \n",
+ "55 u31 \n",
+ "56 u31 \n",
+ "57 u31 \n",
+ "58 u31 \n",
+ "59 u31 \n",
+ "60 u31 \n",
+ "61 u31 \n",
+ "62 u32 \n",
+ "63 u32 \n",
+ "64 u32 \n",
+ "65 u32 \n",
+ "66 u32 \n",
+ "67 u32 \n",
+ "68 u32 \n",
+ "69 u32 \n",
+ "100 u60 \n",
+ "101 u60 \n",
+ "102 u60 \n",
+ "103 u60 \n",
+ "104 u60 \n",
+ "105 u60 \n",
+ "106 u60 \n",
+ "107 u60 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 21 | \n",
+ " 177 | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542810_01.51 | \n",
+ " 571542810_02 | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id node_id\n",
+ "21 177 17 NaN NaN 571542810_01.51 571542810_02 u20"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.matching[self.matching.node_id=='u20']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 123,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 중간산출물을 생성합니다.\n",
+ "2-1. 매칭 테이블들을 생성했습니다.\n",
+ "2-2. 비보호우회전(g)을 배정했습니다.\n",
+ "2-3. 직진 및 좌회전(G)을 배정했습니다.\n",
+ "2-2. node2num_cycles.json를 저장했습니다.\n"
+ ]
+ }
+ ],
+ "source": [
+ "self.get_intermediates()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \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",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 21 | \n",
+ " 177 | \n",
+ " 17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 571542810_01.51 | \n",
+ " 571542810_02 | \n",
+ " u20 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id node_id\n",
+ "21 177 17 NaN NaN 571542810_01.51 571542810_02 u20"
]
},
- "execution_count": 52,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "self.matching[self.matching.node_id=='u60']"
+ "self.matching[self.matching.node_id=='u20']"
]
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 16,
"metadata": {},
"outputs": [
{
@@ -849,6 +2399,886 @@
"output_type": "stream",
"text": [
"ggggggggg\n",
+ "i0\n",
+ "571545870_02\n",
+ "571542797_02\n",
+ "inter_no 175\n",
+ "move_no 1\n",
+ "inc_dire 동\n",
+ "out_dire 남\n",
+ "inc_edge_id 571545870_02\n",
+ "out_edge_id 571542797_02\n",
+ "node_id i0\n",
+ "Name: 0, dtype: object\n",
+ "i0\n",
+ "571510153_02\n",
+ "571545870_01\n",
+ "inter_no 175\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571510153_02\n",
+ "out_edge_id 571545870_01\n",
+ "node_id i0\n",
+ "Name: 1, dtype: object\n",
+ "i0\n",
+ "-571542797_02\n",
+ "571510153_01\n",
+ "inter_no 175\n",
+ "move_no 3\n",
+ "inc_dire 남\n",
+ "out_dire 서\n",
+ "inc_edge_id -571542797_02\n",
+ "out_edge_id 571510153_01\n",
+ "node_id i0\n",
+ "Name: 2, dtype: object\n",
+ "i0\n",
+ "-571500487_01\n",
+ "571542797_02\n",
+ "inter_no 175\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id -571500487_01\n",
+ "out_edge_id 571542797_02\n",
+ "node_id i0\n",
+ "Name: 3, dtype: object\n",
+ "i0\n",
+ "-571500487_01\n",
+ "571542797_02\n",
+ "inter_no 175\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id -571500487_01\n",
+ "out_edge_id 571542797_02\n",
+ "node_id i0\n",
+ "Name: 3, dtype: object\n",
+ "i0\n",
+ "571510153_02\n",
+ "571500487_01\n",
+ "inter_no 175\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571510153_02\n",
+ "out_edge_id 571500487_01\n",
+ "node_id i0\n",
+ "Name: 4, dtype: object\n",
+ "i0\n",
+ "571545870_02\n",
+ "571510153_01\n",
+ "inter_no 175\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571545870_02\n",
+ "out_edge_id 571510153_01\n",
+ "node_id i0\n",
+ "Name: 5, dtype: object\n",
+ "i0\n",
+ "571545870_02\n",
+ "571510153_01\n",
+ "inter_no 175\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571545870_02\n",
+ "out_edge_id 571510153_01\n",
+ "node_id i0\n",
+ "Name: 5, dtype: object\n",
+ "i0\n",
+ "-571500487_01\n",
+ "571545870_01\n",
+ "inter_no 175\n",
+ "move_no 7\n",
+ "inc_dire 북\n",
+ "out_dire 동\n",
+ "inc_edge_id -571500487_01\n",
+ "out_edge_id 571545870_01\n",
+ "node_id i0\n",
+ "Name: 6, dtype: object\n",
+ "i0\n",
+ "-571542797_02\n",
+ "571500487_01\n",
+ "inter_no 175\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542797_02\n",
+ "out_edge_id 571500487_01\n",
+ "node_id i0\n",
+ "Name: 7, dtype: object\n",
+ "i0\n",
+ "-571542797_02\n",
+ "571500487_01\n",
+ "inter_no 175\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542797_02\n",
+ "out_edge_id 571500487_01\n",
+ "node_id i0\n",
+ "Name: 7, dtype: object\n",
+ "i0\n",
+ "-571542797_02\n",
+ "571500487_01\n",
+ "inter_no 175\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542797_02\n",
+ "out_edge_id 571500487_01\n",
+ "node_id i0\n",
+ "Name: 7, dtype: object\n",
+ "i0\n",
+ "-571542797_02\n",
+ "571500487_01\n",
+ "inter_no 175\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542797_02\n",
+ "out_edge_id 571500487_01\n",
+ "node_id i0\n",
+ "Name: 7, dtype: object\n",
+ "u00\n",
+ "571500487_02\n",
+ "571500487_01.32\n",
+ "inter_no 175\n",
+ "move_no 7\n",
+ "inc_dire 북\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500487_02\n",
+ "out_edge_id 571500487_01.32\n",
+ "node_id u00\n",
+ "Name: 12, dtype: object\n",
+ "i1\n",
+ "-571542810_01\n",
+ "571543469_01\n",
+ "inter_no 176\n",
+ "move_no 3\n",
+ "inc_dire 남\n",
+ "out_dire 서\n",
+ "inc_edge_id -571542810_01\n",
+ "out_edge_id 571543469_01\n",
+ "node_id i1\n",
+ "Name: 13, dtype: object\n",
+ "i1\n",
+ "571542797_02.99\n",
+ "571542810_01\n",
+ "inter_no 176\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542797_02.99\n",
+ "out_edge_id 571542810_01\n",
+ "node_id i1\n",
+ "Name: 14, dtype: object\n",
+ "i1\n",
+ "571542797_02.99\n",
+ "571542810_01\n",
+ "inter_no 176\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542797_02.99\n",
+ "out_edge_id 571542810_01\n",
+ "node_id i1\n",
+ "Name: 14, dtype: object\n",
+ "i1\n",
+ "571543469_02\n",
+ "-571542797_02.99\n",
+ "inter_no 176\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571543469_02\n",
+ "out_edge_id -571542797_02.99\n",
+ "node_id i1\n",
+ "Name: 15, dtype: object\n",
+ "i1\n",
+ "571543469_02\n",
+ "-571542797_02.99\n",
+ "inter_no 176\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571543469_02\n",
+ "out_edge_id -571542797_02.99\n",
+ "node_id i1\n",
+ "Name: 15, dtype: object\n",
+ "i1\n",
+ "-571542810_01\n",
+ "-571542797_02.99\n",
+ "inter_no 176\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542810_01\n",
+ "out_edge_id -571542797_02.99\n",
+ "node_id i1\n",
+ "Name: 16, dtype: object\n",
+ "i1\n",
+ "-571542810_01\n",
+ "-571542797_02.99\n",
+ "inter_no 176\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542810_01\n",
+ "out_edge_id -571542797_02.99\n",
+ "node_id i1\n",
+ "Name: 16, dtype: object\n",
+ "i1\n",
+ "-571542810_01\n",
+ "-571542797_02.99\n",
+ "inter_no 176\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542810_01\n",
+ "out_edge_id -571542797_02.99\n",
+ "node_id i1\n",
+ "Name: 16, dtype: object\n",
+ "i2\n",
+ "571542811_02\n",
+ "571542809_01\n",
+ "inter_no 177\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542811_02\n",
+ "out_edge_id 571542809_01\n",
+ "node_id i2\n",
+ "Name: 19, dtype: object\n",
+ "i2\n",
+ "571542811_02\n",
+ "571542809_01\n",
+ "inter_no 177\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542811_02\n",
+ "out_edge_id 571542809_01\n",
+ "node_id i2\n",
+ "Name: 19, dtype: object\n",
+ "i2\n",
+ "-571542809_01\n",
+ "571542811_01\n",
+ "inter_no 177\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542809_01\n",
+ "out_edge_id 571542811_01\n",
+ "node_id i2\n",
+ "Name: 20, dtype: object\n",
+ "i2\n",
+ "-571542809_01\n",
+ "571542811_01\n",
+ "inter_no 177\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542809_01\n",
+ "out_edge_id 571542811_01\n",
+ "node_id i2\n",
+ "Name: 20, dtype: object\n",
+ "i2\n",
+ "-571542809_01\n",
+ "571542811_01\n",
+ "inter_no 177\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571542809_01\n",
+ "out_edge_id 571542811_01\n",
+ "node_id i2\n",
+ "Name: 20, dtype: object\n",
+ "i3\n",
+ "-571500475_01\n",
+ "571540304_01\n",
+ "inter_no 178\n",
+ "move_no 1\n",
+ "inc_dire 동\n",
+ "out_dire 남\n",
+ "inc_edge_id -571500475_01\n",
+ "out_edge_id 571540304_01\n",
+ "node_id i3\n",
+ "Name: 21, dtype: object\n",
+ "i3\n",
+ "571540303_02.21\n",
+ "571500475_01\n",
+ "inter_no 178\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571540303_02.21\n",
+ "out_edge_id 571500475_01\n",
+ "node_id i3\n",
+ "Name: 22, dtype: object\n",
+ "i3\n",
+ "571540303_02.21\n",
+ "571500475_01\n",
+ "inter_no 178\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571540303_02.21\n",
+ "out_edge_id 571500475_01\n",
+ "node_id i3\n",
+ "Name: 22, dtype: object\n",
+ "i3\n",
+ "571540303_02.21\n",
+ "571500475_01\n",
+ "inter_no 178\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571540303_02.21\n",
+ "out_edge_id 571500475_01\n",
+ "node_id i3\n",
+ "Name: 22, dtype: object\n",
+ "i3\n",
+ "571540304_02\n",
+ "571540303_01\n",
+ "inter_no 178\n",
+ "move_no 3\n",
+ "inc_dire 남\n",
+ "out_dire 서\n",
+ "inc_edge_id 571540304_02\n",
+ "out_edge_id 571540303_01\n",
+ "node_id i3\n",
+ "Name: 23, dtype: object\n",
+ "i3\n",
+ "571556450_02\n",
+ "571540304_01\n",
+ "inter_no 178\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571556450_02\n",
+ "out_edge_id 571540304_01\n",
+ "node_id i3\n",
+ "Name: 24, dtype: object\n",
+ "i3\n",
+ "571556450_02\n",
+ "571540304_01\n",
+ "inter_no 178\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571556450_02\n",
+ "out_edge_id 571540304_01\n",
+ "node_id i3\n",
+ "Name: 24, dtype: object\n",
+ "i3\n",
+ "571556450_02\n",
+ "571540304_01\n",
+ "inter_no 178\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571556450_02\n",
+ "out_edge_id 571540304_01\n",
+ "node_id i3\n",
+ "Name: 24, dtype: object\n",
+ "i3\n",
+ "571540303_02.21\n",
+ "571556450_01\n",
+ "inter_no 178\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571540303_02.21\n",
+ "out_edge_id 571556450_01\n",
+ "node_id i3\n",
+ "Name: 25, dtype: object\n",
+ "i3\n",
+ "-571500475_01\n",
+ "571540303_01\n",
+ "inter_no 178\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571500475_01\n",
+ "out_edge_id 571540303_01\n",
+ "node_id i3\n",
+ "Name: 26, dtype: object\n",
+ "i3\n",
+ "-571500475_01\n",
+ "571540303_01\n",
+ "inter_no 178\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571500475_01\n",
+ "out_edge_id 571540303_01\n",
+ "node_id i3\n",
+ "Name: 26, dtype: object\n",
+ "i3\n",
+ "-571500475_01\n",
+ "571540303_01\n",
+ "inter_no 178\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571500475_01\n",
+ "out_edge_id 571540303_01\n",
+ "node_id i3\n",
+ "Name: 26, dtype: object\n",
+ "i3\n",
+ "571556450_02\n",
+ "571500475_01\n",
+ "inter_no 178\n",
+ "move_no 7\n",
+ "inc_dire 북\n",
+ "out_dire 동\n",
+ "inc_edge_id 571556450_02\n",
+ "out_edge_id 571500475_01\n",
+ "node_id i3\n",
+ "Name: 27, dtype: object\n",
+ "i3\n",
+ "571540304_02\n",
+ "571556450_01\n",
+ "inter_no 178\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571540304_02\n",
+ "out_edge_id 571556450_01\n",
+ "node_id i3\n",
+ "Name: 28, dtype: object\n",
+ "i3\n",
+ "571540304_02\n",
+ "571556450_01\n",
+ "inter_no 178\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571540304_02\n",
+ "out_edge_id 571556450_01\n",
+ "node_id i3\n",
+ "Name: 28, dtype: object\n",
+ "i3\n",
+ "571540304_02\n",
+ "571556450_01\n",
+ "inter_no 178\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571540304_02\n",
+ "out_edge_id 571556450_01\n",
+ "node_id i3\n",
+ "Name: 28, dtype: object\n",
+ "u30\n",
+ "571556452_01\n",
+ "571556452_02\n",
+ "inter_no 178\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571556452_01\n",
+ "out_edge_id 571556452_02\n",
+ "node_id u30\n",
+ "Name: 33, dtype: object\n",
+ "u31\n",
+ "571500475_02\n",
+ "571500475_01.26\n",
+ "inter_no 178\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500475_02\n",
+ "out_edge_id 571500475_01.26\n",
+ "node_id u31\n",
+ "Name: 34, dtype: object\n",
+ "u32\n",
+ "571540303_02\n",
+ "-571540303_02\n",
+ "inter_no 178\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571540303_02\n",
+ "out_edge_id -571540303_02\n",
+ "node_id u32\n",
+ "Name: 35, dtype: object\n",
+ "i8\n",
+ "571500617_02\n",
+ "571500569_01\n",
+ "inter_no 201\n",
+ "move_no 1\n",
+ "inc_dire 동\n",
+ "out_dire 남\n",
+ "inc_edge_id 571500617_02\n",
+ "out_edge_id 571500569_01\n",
+ "node_id i8\n",
+ "Name: 36, dtype: object\n",
+ "i8\n",
+ "571500618_02\n",
+ "571500617_01\n",
+ "inter_no 201\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500618_02\n",
+ "out_edge_id 571500617_01\n",
+ "node_id i8\n",
+ "Name: 37, dtype: object\n",
+ "i8\n",
+ "571500618_02\n",
+ "571500617_01\n",
+ "inter_no 201\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500618_02\n",
+ "out_edge_id 571500617_01\n",
+ "node_id i8\n",
+ "Name: 37, dtype: object\n",
+ "i8\n",
+ "-571500569_01\n",
+ "571500618_01\n",
+ "inter_no 201\n",
+ "move_no 3\n",
+ "inc_dire 남\n",
+ "out_dire 서\n",
+ "inc_edge_id -571500569_01\n",
+ "out_edge_id 571500618_01\n",
+ "node_id i8\n",
+ "Name: 38, dtype: object\n",
+ "i8\n",
+ "571500583_01\n",
+ "571500569_01\n",
+ "inter_no 201\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571500583_01\n",
+ "out_edge_id 571500569_01\n",
+ "node_id i8\n",
+ "Name: 39, dtype: object\n",
+ "i8\n",
+ "571500583_01\n",
+ "571500569_01\n",
+ "inter_no 201\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571500583_01\n",
+ "out_edge_id 571500569_01\n",
+ "node_id i8\n",
+ "Name: 39, dtype: object\n",
+ "i8\n",
+ "571500618_02\n",
+ "571500583_02\n",
+ "inter_no 201\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500618_02\n",
+ "out_edge_id 571500583_02\n",
+ "node_id i8\n",
+ "Name: 40, dtype: object\n",
+ "i8\n",
+ "571500617_02\n",
+ "571500618_01\n",
+ "inter_no 201\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571500617_02\n",
+ "out_edge_id 571500618_01\n",
+ "node_id i8\n",
+ "Name: 41, dtype: object\n",
+ "i8\n",
+ "571500617_02\n",
+ "571500618_01\n",
+ "inter_no 201\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571500617_02\n",
+ "out_edge_id 571500618_01\n",
+ "node_id i8\n",
+ "Name: 41, dtype: object\n",
+ "i8\n",
+ "571500617_02\n",
+ "571500618_01\n",
+ "inter_no 201\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571500617_02\n",
+ "out_edge_id 571500618_01\n",
+ "node_id i8\n",
+ "Name: 41, dtype: object\n",
+ "i8\n",
+ "571500583_01\n",
+ "571500617_01\n",
+ "inter_no 201\n",
+ "move_no 7\n",
+ "inc_dire 북\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500583_01\n",
+ "out_edge_id 571500617_01\n",
+ "node_id i8\n",
+ "Name: 42, dtype: object\n",
+ "i8\n",
+ "-571500569_01\n",
+ "571500583_02\n",
+ "inter_no 201\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571500569_01\n",
+ "out_edge_id 571500583_02\n",
+ "node_id i8\n",
+ "Name: 43, dtype: object\n",
+ "i8\n",
+ "-571500569_01\n",
+ "571500583_02\n",
+ "inter_no 201\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571500569_01\n",
+ "out_edge_id 571500583_02\n",
+ "node_id i8\n",
+ "Name: 43, dtype: object\n",
+ "i9\n",
+ "571510152_01\n",
+ "571510152_01.65\n",
+ "inter_no 202\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571510152_01\n",
+ "out_edge_id 571510152_01.65\n",
+ "node_id i9\n",
+ "Name: 48, dtype: object\n",
+ "i9\n",
+ "571510152_01\n",
+ "571510152_01.65\n",
+ "inter_no 202\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571510152_01\n",
+ "out_edge_id 571510152_01.65\n",
+ "node_id i9\n",
+ "Name: 48, dtype: object\n",
+ "i9\n",
+ "571510152_02\n",
+ "-571510152_01\n",
+ "inter_no 202\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571510152_02\n",
+ "out_edge_id -571510152_01\n",
+ "node_id i9\n",
+ "Name: 49, dtype: object\n",
+ "i9\n",
+ "571510152_02\n",
+ "-571510152_01\n",
+ "inter_no 202\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id 571510152_02\n",
+ "out_edge_id -571510152_01\n",
+ "node_id i9\n",
+ "Name: 49, dtype: object\n",
+ "i7\n",
+ "571542073_01\n",
+ "571511538_02\n",
+ "inter_no 206\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542073_01\n",
+ "out_edge_id 571511538_02\n",
+ "node_id i7\n",
+ "Name: 50, dtype: object\n",
+ "i7\n",
+ "571542073_01\n",
+ "571511538_02\n",
+ "inter_no 206\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571542073_01\n",
+ "out_edge_id 571511538_02\n",
+ "node_id i7\n",
+ "Name: 50, dtype: object\n",
+ "i7\n",
+ "-571511538_02\n",
+ "571542073_02\n",
+ "inter_no 206\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571511538_02\n",
+ "out_edge_id 571542073_02\n",
+ "node_id i7\n",
+ "Name: 51, dtype: object\n",
+ "i7\n",
+ "-571511538_02\n",
+ "571542073_02\n",
+ "inter_no 206\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id -571511538_02\n",
+ "out_edge_id 571542073_02\n",
+ "node_id i7\n",
+ "Name: 51, dtype: object\n",
+ "i6\n",
+ "-571542115_01\n",
+ "571500585_01\n",
+ "inter_no 210\n",
+ "move_no 1\n",
+ "inc_dire 동\n",
+ "out_dire 남\n",
+ "inc_edge_id -571542115_01\n",
+ "out_edge_id 571500585_01\n",
+ "node_id i6\n",
+ "Name: 52, dtype: object\n",
+ "i6\n",
+ "571500535_02.18\n",
+ "571542115_01\n",
+ "inter_no 210\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500535_02.18\n",
+ "out_edge_id 571542115_01\n",
+ "node_id i6\n",
+ "Name: 53, dtype: object\n",
+ "i6\n",
+ "571500535_02.18\n",
+ "571542115_01\n",
+ "inter_no 210\n",
+ "move_no 2\n",
+ "inc_dire 서\n",
+ "out_dire 동\n",
+ "inc_edge_id 571500535_02.18\n",
+ "out_edge_id 571542115_01\n",
+ "node_id i6\n",
+ "Name: 53, dtype: object\n",
+ "i6\n",
+ "571511538_02.121\n",
+ "571500585_01\n",
+ "inter_no 210\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571511538_02.121\n",
+ "out_edge_id 571500585_01\n",
+ "node_id i6\n",
+ "Name: 55, dtype: object\n",
+ "i6\n",
+ "571511538_02.121\n",
+ "571500585_01\n",
+ "inter_no 210\n",
+ "move_no 4\n",
+ "inc_dire 북\n",
+ "out_dire 남\n",
+ "inc_edge_id 571511538_02.121\n",
+ "out_edge_id 571500585_01\n",
+ "node_id i6\n",
+ "Name: 55, dtype: object\n",
+ "i6\n",
+ "571500535_02.18\n",
+ "571511538_01\n",
+ "inter_no 210\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500535_02.18\n",
+ "out_edge_id 571511538_01\n",
+ "node_id i6\n",
+ "Name: 56, dtype: object\n",
+ "i6\n",
+ "-571542115_01\n",
+ "571500535_01\n",
+ "inter_no 210\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571542115_01\n",
+ "out_edge_id 571500535_01\n",
+ "node_id i6\n",
+ "Name: 57, dtype: object\n",
+ "i6\n",
+ "-571542115_01\n",
+ "571500535_01\n",
+ "inter_no 210\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571542115_01\n",
+ "out_edge_id 571500535_01\n",
+ "node_id i6\n",
+ "Name: 57, dtype: object\n",
+ "i6\n",
+ "-571542115_01\n",
+ "571500535_01\n",
+ "inter_no 210\n",
+ "move_no 6\n",
+ "inc_dire 동\n",
+ "out_dire 서\n",
+ "inc_edge_id -571542115_01\n",
+ "out_edge_id 571500535_01\n",
+ "node_id i6\n",
+ "Name: 57, dtype: object\n",
+ "i6\n",
+ "571511538_02.121\n",
+ "571542115_01\n",
+ "inter_no 210\n",
+ "move_no 7\n",
+ "inc_dire 북\n",
+ "out_dire 동\n",
+ "inc_edge_id 571511538_02.121\n",
+ "out_edge_id 571542115_01\n",
+ "node_id i6\n",
+ "Name: 58, dtype: object\n",
+ "i6\n",
+ "571500585_02\n",
+ "571511538_01\n",
+ "inter_no 210\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500585_02\n",
+ "out_edge_id 571511538_01\n",
+ "node_id i6\n",
+ "Name: 59, dtype: object\n",
+ "i6\n",
+ "571500585_02\n",
+ "571511538_01\n",
+ "inter_no 210\n",
+ "move_no 8\n",
+ "inc_dire 남\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500585_02\n",
+ "out_edge_id 571511538_01\n",
+ "node_id i6\n",
+ "Name: 59, dtype: object\n",
+ "u60\n",
+ "571500535_02\n",
+ "-571500535_02\n",
+ "inter_no 210\n",
+ "move_no 5\n",
+ "inc_dire 서\n",
+ "out_dire 북\n",
+ "inc_edge_id 571500535_02\n",
+ "out_edge_id -571500535_02\n",
+ "node_id u60\n",
+ "Name: 64, dtype: object\n",
"ggggrgggg\n",
"ggggrgggg\n"
]
@@ -898,6 +3328,10 @@
" for conn in inc_edge.getConnections(out_edge):\n",
" index = conn.getTLLinkIndex()\n",
" if index >= 0:\n",
+ " print(node_id)\n",
+ " print(inc_edge_id)\n",
+ " print(out_edge_id)\n",
+ " print(row)\n",
" self.node2init[node_id][index] = 'r'\n",
"print(''.join(self.node2init[NODE_ID]))\n",
"\n",
diff --git a/Analysis/0415_angle2edge/0415_agnle2edge.ipynb b/Analysis/0415_angle2edge/0415_agnle2edge.ipynb
new file mode 100644
index 000000000..8beedd69d
--- /dev/null
+++ b/Analysis/0415_angle2edge/0415_agnle2edge.ipynb
@@ -0,0 +1,268 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " phase_no | \n",
+ " ring_type | \n",
+ " move_no | \n",
+ " angle_code | \n",
+ " inc_edge_id | \n",
+ " out_edge_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 4 | \n",
+ " 357140 | \n",
+ " e1 | \n",
+ " e6 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 7 | \n",
+ " 357088 | \n",
+ " e1 | \n",
+ " e4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 4 | \n",
+ " 357140 | \n",
+ " e1 | \n",
+ " e6 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 8 | \n",
+ " 142359 | \n",
+ " e5 | \n",
+ " e2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " phase_no ring_type move_no angle_code inc_edge_id out_edge_id\n",
+ "0 1 A 4 357140 e1 e6\n",
+ "1 1 B 7 357088 e1 e4\n",
+ "2 2 A 4 357140 e1 e6\n",
+ "3 2 B 8 142359 e5 e2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " phase_no | \n",
+ " ring_type | \n",
+ " move_no | \n",
+ " angle_code | \n",
+ " inc_edge_id | \n",
+ " out_edge_id | \n",
+ " inc_angle | \n",
+ " out_angle | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 4 | \n",
+ " 357140 | \n",
+ " e1 | \n",
+ " e6 | \n",
+ " 357 | \n",
+ " 140 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 7 | \n",
+ " 357088 | \n",
+ " e1 | \n",
+ " e4 | \n",
+ " 357 | \n",
+ " 88 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 4 | \n",
+ " 357140 | \n",
+ " e1 | \n",
+ " e6 | \n",
+ " 357 | \n",
+ " 140 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 8 | \n",
+ " 142359 | \n",
+ " e5 | \n",
+ " e2 | \n",
+ " 142 | \n",
+ " 359 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " phase_no ring_type move_no angle_code inc_edge_id out_edge_id inc_angle \\\n",
+ "0 1 A 4 357140 e1 e6 357 \n",
+ "1 1 B 7 357088 e1 e4 357 \n",
+ "2 2 A 4 357140 e1 e6 357 \n",
+ "3 2 B 8 142359 e5 e2 142 \n",
+ "\n",
+ " out_angle \n",
+ "0 140 \n",
+ "1 88 \n",
+ "2 140 \n",
+ "3 359 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[357]\n",
+ " [140]\n",
+ " [357]\n",
+ " [ 88]\n",
+ " [357]\n",
+ " [140]\n",
+ " [142]\n",
+ " [359]]\n",
+ "[0 1 0 2 0 1 1 0]\n",
+ "[[357.5 ]\n",
+ " [140.66666667]\n",
+ " [ 88. ]]\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\Github\\sts\\sts\\lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
+ " super()._check_params_vs_input(X, default_n_init=10)\n"
+ ]
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "data = [\n",
+ " [1, 'A', 4, '357140', 'e1', 'e6'],\n",
+ " [1, 'B', 7, '357088', 'e1', 'e4'],\n",
+ " [2, 'A', 4, '357140', 'e1', 'e6'],\n",
+ " [2, 'B', 8, '142359', 'e5', 'e2']\n",
+ "]\n",
+ "\n",
+ "df = pd.DataFrame(data,\n",
+ " columns=['phase_no', 'ring_type', 'move_no', 'angle_code', 'inc_edge_id', 'out_edge_id'])\n",
+ "display(df)\n",
+ "df['inc_angle'] = df['angle_code'].apply(lambda x:int(x[:3]))\n",
+ "df['out_angle'] = df['angle_code'].apply(lambda x:int(x[3:]))\n",
+ "display(df)\n",
+ "\n",
+ "angles = df[['inc_angle', 'out_angle']].values.flatten().reshape(-1, 1)\n",
+ "angles\n",
+ "\n",
+ "from sklearn.cluster import KMeans\n",
+ "# K-means 모델 생성 및 학습 (k=3)\n",
+ "kmeans = KMeans(n_clusters=3, random_state=0).fit(angles)\n",
+ "\n",
+ "# 클러스터링 결과\n",
+ "labels = kmeans.labels_\n",
+ "\n",
+ "# 클러스터 중심점 출력\n",
+ "centroids = kmeans.cluster_centers_\n",
+ "print(angles)\n",
+ "print(labels)\n",
+ "print(centroids)\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "sts",
+ "language": "python",
+ "name": "sts"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Intermediates/match6.csv b/Intermediates/match6.csv
index 459672b49..c81cc4a94 100644
--- a/Intermediates/match6.csv
+++ b/Intermediates/match6.csv
@@ -25,10 +25,10 @@
23,177,i2,1,B,4,571542811_02,571542809_01,GGggrrr
24,177,i2,2,A,17,,,rrggrrr
25,177,i2,2,B,18,,,rrggrrr
-26,177,u20,1,A,8,,,gggggg
-27,177,u20,1,B,4,,,gggggg
+26,177,u20,1,A,8,,,ggrggg
+27,177,u20,1,B,4,,,ggrggg
28,177,u20,2,A,17,571542810_01.51,571542810_02,ggGggg
-29,177,u20,2,B,18,,,gggggg
+29,177,u20,2,B,18,,,ggrggg
30,178,c30,1,A,20,,,rrrrrr
31,178,c30,1,B,20,,,rrrrrr
32,178,c30,2,A,20,571542116_01,-571542116_02.96,GGGrrr
diff --git a/Intermediates/matching.csv b/Intermediates/matching.csv
index 07a7e729a..36f933730 100644
--- a/Intermediates/matching.csv
+++ b/Intermediates/matching.csv
@@ -20,47 +20,54 @@
18,176,i1,21,571543469_02,571542810_01,grrrrrrgrr
19,177,i2,4,571542811_02,571542809_01,GGggrrr
20,177,i2,8,-571542809_01,571542811_01,rrggGGG
-21,178,i3,1,-571500475_01,571540304_01,grrrrgrrrGgrrrrgrrrr
-22,178,i3,2,571540303_02.21,571500475_01,grrrrgrrrrgrrrrgGGGr
-23,178,i3,3,571540304_02,571540303_01,grrrrgrrrrgrrrGgrrrr
-24,178,i3,4,571556450_02,571540304_01,gGGGrgrrrrgrrrrgrrrr
-25,178,i3,5,571540303_02.21,571556450_01,grrrrgrrrrgrrrrgrrrG
-26,178,i3,6,-571500475_01,571540303_01,grrrrgGGGrgrrrrgrrrr
-27,178,i3,7,571556450_02,571500475_01,grrrGgrrrrgrrrrgrrrr
-28,178,i3,8,571540304_02,571556450_01,grrrrgrrrrgGGGrgrrrr
-29,178,i3,21,571556450_02,571540303_01,grrrrgrrrrgrrrrgrrrr
-30,178,i3,21,571540303_02.21,571540304_01,grrrrgrrrrgrrrrgrrrr
-31,178,i3,21,571540304_02,571500475_01,grrrrgrrrrgrrrrgrrrr
-32,178,i3,21,-571500475_01,571556450_01,grrrrgrrrrgrrrrgrrrr
-33,178,u30,6,571556452_01,571556452_02,ggggGggg
-34,178,u31,8,571500475_02,571500475_01.26,ggggGggg
-35,178,u32,4,571540303_02,-571540303_02,gggggggG
-36,201,i8,1,571500617_02,571500569_01,grrrrrrGgrrrgrrr
-37,201,i8,2,571500618_02,571500617_01,grrrrrrrgrrrgGGr
-38,201,i8,3,-571500569_01,571500618_01,grrrrrrrgrrGgrrr
-39,201,i8,4,571500583_01,571500569_01,gGGrrrrrgrrrgrrr
-40,201,i8,5,571500618_02,571500583_02,grrrrrrrgrrrgrrG
-41,201,i8,6,571500617_02,571500618_01,grrrGGGrgrrrgrrr
-42,201,i8,7,571500583_01,571500617_01,grrGrrrrgrrrgrrr
-43,201,i8,8,-571500569_01,571500583_02,grrrrrrrgGGrgrrr
-44,201,i8,21,571500583_01,571500618_01,grrrrrrrgrrrgrrr
-45,201,i8,21,571500618_02,571500569_01,grrrrrrrgrrrgrrr
-46,201,i8,21,-571500569_01,571500617_01,grrrrrrrgrrrgrrr
-47,201,i8,21,571500617_02,571500583_02,grrrrrrrgrrrgrrr
-48,202,i9,2,571510152_01,571510152_01.65,rrGG
-49,202,i9,6,571510152_02,-571510152_01,GGrr
-50,206,i7,4,571542073_01,571511538_02,GGrggrr
-51,206,i7,8,-571511538_02,571542073_02,rrrggGG
-52,210,i6,1,-571542115_01,571500585_01,grrrgrrrGgrrgrrr
-53,210,i6,2,571500535_02.18,571542115_01,grrrgrrrrgrrgGGr
-54,210,i6,3,571500585_02,571500535_01,grrrgrrrrgrrgrrr
-55,210,i6,4,571511538_02.121,571500585_01,gGGrgrrrrgrrgrrr
-56,210,i6,5,571500535_02.18,571511538_01,grrrgrrrrgrrgrrG
-57,210,i6,6,-571542115_01,571500535_01,grrrgGGGrgrrgrrr
-58,210,i6,7,571511538_02.121,571542115_01,grrGgrrrrgrrgrrr
-59,210,i6,8,571500585_02,571511538_01,grrrgrrrrgGGgrrr
-60,210,i6,21,571511538_02.121,571500535_01,grrrgrrrrgrrgrrr
-61,210,i6,21,571500535_02.18,571500585_01,grrrgrrrrgrrgrrr
-62,210,i6,21,571500585_02,571542115_01,grrrgrrrrgrrgrrr
-63,210,i6,21,-571542115_01,571511538_01,grrrgrrrrgrrgrrr
-64,210,u60,5,571500535_02,-571500535_02,ggggggggG
+21,177,u20,17,571542810_01.51,571542810_02,ggGggg
+22,178,c30,20,571542116_01,-571542116_02.96,GGGrrr
+23,178,c30,20,571542116_02.96,571542116_02.164,rrrGGG
+24,178,c30,20,571542116_01,-571542116_02.96,GGGrrr
+25,178,c30,20,571542116_02.96,571542116_02.164,rrrGGG
+26,178,c30,20,571542116_01,-571542116_02.96,GGGrrr
+27,178,c30,20,571542116_02.96,571542116_02.164,rrrGGG
+28,178,i3,1,-571500475_01,571540304_01,grrrrgrrrGgrrrrgrrrr
+29,178,i3,2,571540303_02.21,571500475_01,grrrrgrrrrgrrrrgGGGr
+30,178,i3,3,571540304_02,571540303_01,grrrrgrrrrgrrrGgrrrr
+31,178,i3,4,571556450_02,571540304_01,gGGGrgrrrrgrrrrgrrrr
+32,178,i3,5,571540303_02.21,571556450_01,grrrrgrrrrgrrrrgrrrG
+33,178,i3,6,-571500475_01,571540303_01,grrrrgGGGrgrrrrgrrrr
+34,178,i3,7,571556450_02,571500475_01,grrrGgrrrrgrrrrgrrrr
+35,178,i3,8,571540304_02,571556450_01,grrrrgrrrrgGGGrgrrrr
+36,178,i3,21,571556450_02,571540303_01,grrrrgrrrrgrrrrgrrrr
+37,178,i3,21,571540303_02.21,571540304_01,grrrrgrrrrgrrrrgrrrr
+38,178,i3,21,571540304_02,571500475_01,grrrrgrrrrgrrrrgrrrr
+39,178,i3,21,-571500475_01,571556450_01,grrrrgrrrrgrrrrgrrrr
+40,178,u30,6,571556452_01,571556452_02,ggggGggg
+41,178,u31,8,571500475_02,571500475_01.26,ggggGggg
+42,178,u32,4,571540303_02,-571540303_02,gggggggG
+43,201,i8,1,571500617_02,571500569_01,grrrrrrGgrrrgrrr
+44,201,i8,2,571500618_02,571500617_01,grrrrrrrgrrrgGGr
+45,201,i8,3,-571500569_01,571500618_01,grrrrrrrgrrGgrrr
+46,201,i8,4,571500583_01,571500569_01,gGGrrrrrgrrrgrrr
+47,201,i8,5,571500618_02,571500583_02,grrrrrrrgrrrgrrG
+48,201,i8,6,571500617_02,571500618_01,grrrGGGrgrrrgrrr
+49,201,i8,7,571500583_01,571500617_01,grrGrrrrgrrrgrrr
+50,201,i8,8,-571500569_01,571500583_02,grrrrrrrgGGrgrrr
+51,201,i8,21,571500583_01,571500618_01,grrrrrrrgrrrgrrr
+52,201,i8,21,571500618_02,571500569_01,grrrrrrrgrrrgrrr
+53,201,i8,21,-571500569_01,571500617_01,grrrrrrrgrrrgrrr
+54,201,i8,21,571500617_02,571500583_02,grrrrrrrgrrrgrrr
+55,202,i9,2,571510152_01,571510152_01.65,rrGG
+56,202,i9,6,571510152_02,-571510152_01,GGrr
+57,206,i7,4,571542073_01,571511538_02,GGrggrr
+58,206,i7,8,-571511538_02,571542073_02,rrrggGG
+59,210,i6,1,-571542115_01,571500585_01,grrrgrrrGgrrgrrr
+60,210,i6,2,571500535_02.18,571542115_01,grrrgrrrrgrrgGGr
+61,210,i6,3,571500585_02,571500535_01,grrrgrrrrgrrgrrr
+62,210,i6,4,571511538_02.121,571500585_01,gGGrgrrrrgrrgrrr
+63,210,i6,5,571500535_02.18,571511538_01,grrrgrrrrgrrgrrG
+64,210,i6,6,-571542115_01,571500535_01,grrrgGGGrgrrgrrr
+65,210,i6,7,571511538_02.121,571542115_01,grrGgrrrrgrrgrrr
+66,210,i6,8,571500585_02,571511538_01,grrrgrrrrgGGgrrr
+67,210,i6,21,571511538_02.121,571500535_01,grrrgrrrrgrrgrrr
+68,210,i6,21,571500535_02.18,571500585_01,grrrgrrrrgrrgrrr
+69,210,i6,21,571500585_02,571542115_01,grrrgrrrrgrrgrrr
+70,210,i6,21,-571542115_01,571511538_01,grrrgrrrrgrrgrrr
+71,210,u60,5,571500535_02,-571500535_02,ggggggggG
diff --git a/Intermediates/node2init.json b/Intermediates/node2init.json
index cf11a5284..10176bfea 100644
--- a/Intermediates/node2init.json
+++ b/Intermediates/node2init.json
@@ -1 +1 @@
-{"c30": ["r", "r", "r", "r", "r", "r"], "i0": ["g", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r", "r", "r", "g", "r", "r"], "i1": ["g", "r", "r", "r", "r", "r", "r", "g", "r", "r"], "i2": ["r", "r", "g", "g", "r", "r", "r"], "i3": ["g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r"], "i6": ["g", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "g", "r", "r", "r"], "i7": ["r", "r", "r", "g", "g", "r", "r"], "i8": ["g", "r", "r", "r", "r", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r"], "i9": ["r", "r", "r", "r"], "u00": ["g", "g", "g", "g", "r", "g", "g", "g", "g"], "u20": ["g", "g", "g", "g", "g", "g"], "u30": ["g", "g", "g", "g", "r", "g", "g", "g"], "u31": ["g", "g", "g", "g", "r", "g", "g", "g"], "u32": ["g", "g", "g", "g", "g", "g", "g", "r"], "u60": ["g", "g", "g", "g", "g", "g", "g", "g", "r"]}
\ No newline at end of file
+{"c30": ["r", "r", "r", "r", "r", "r"], "i0": ["g", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r", "r", "r", "g", "r", "r"], "i1": ["g", "r", "r", "r", "r", "r", "r", "g", "r", "r"], "i2": ["r", "r", "g", "g", "r", "r", "r"], "i3": ["g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r"], "i6": ["g", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "g", "r", "r", "r"], "i7": ["r", "r", "r", "g", "g", "r", "r"], "i8": ["g", "r", "r", "r", "r", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r"], "i9": ["r", "r", "r", "r"], "u00": ["g", "g", "g", "g", "r", "g", "g", "g", "g"], "u20": ["g", "g", "r", "g", "g", "g"], "u30": ["g", "g", "g", "g", "r", "g", "g", "g"], "u31": ["g", "g", "g", "g", "r", "g", "g", "g"], "u32": ["g", "g", "g", "g", "g", "g", "g", "r"], "u60": ["g", "g", "g", "g", "g", "g", "g", "g", "r"]}
\ No newline at end of file
diff --git a/Results/sn_1704419100.add.xml b/Results/sn_1704419100.add.xml
index 127d6f0a3..dd5363371 100644
--- a/Results/sn_1704419100.add.xml
+++ b/Results/sn_1704419100.add.xml
@@ -1,60 +1,60 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -84,188 +84,184 @@
-
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -310,95 +306,98 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
-
+
-
+
@@ -428,242 +427,218 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
-
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
\ 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 b3114b1ae..c3f9fb62a 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 ad51f8c3f..f8e6a0a2f 100644
--- a/Scripts/preprocess_daily.py
+++ b/Scripts/preprocess_daily.py
@@ -402,15 +402,16 @@ class DailyPreprocessor():
self.match5['node_id'] = self.match5['inter_no'].map(self.inter2node)
self.match5 = self.match5.sort_values(by=['inter_no','phase_no','ring_type']).reset_index(drop=True)
- # dictionary that maps node_id to io2turn
+ # n2io2turn : dictionary that maps node_id to io2turn
n2io2turn = dict()
for node_id in self.parent_ids:
turn = self.turn_type[self.turn_type.node_id==node_id]
io = list(zip(turn.inc_edge_id, turn.out_edge_id))
- # dictionary that maps (inc_edge_id, out_edge_id) to turn_type
+ # io2turn : dictionary that maps (inc_edge_id, out_edge_id) to turn_type
io2turn = dict(zip(io, turn.turn_type))
n2io2turn[node_id] = io2turn
+ # turn_type 지정
for i, row in self.match5.iterrows():
node_id = row.node_id
inc_edge_id = row.inc_edge_id
@@ -600,8 +601,7 @@ class DailyPreprocessor():
for node_id in self.parent_ids:
pflow[node_id] = [flow for flow in flows if set(flow).issubset(pdires[node_id])]
# (6) 가능한 이동류에 대하여 진입id, 진출id 배정 : matching
- # node2inter = dict(zip(self.match7['node_id'], self.match7['inter_no']))
- dires_right = ['북', '서', '남', '동', '북'] # ex (북, 서), (서, 남) 등은 우회전 flow
+ dires_right = ['북', '북서', '서', '남서', '남', '남동', '동', '북동'] # ex (북, 서), (서, 남) 등은 우회전 flow
self.matching = []
for node_id in self.parent_ids:
inter_no = self.node2inter[node_id]
@@ -620,9 +620,9 @@ class DailyPreprocessor():
'inc_edge_id':[None]*2, 'out_edge_id':[None]*2, 'node_id':[node_id]*2})
self.matching.append(new_row)
# 신호우회전(21)
- for d in range(len(dires_right)-1):
+ for d in range(len(dires_right)):
inc_dire = dires_right[d]
- out_dire = dires_right[d+1]
+ out_dire = dires_right[(d+2)%8]
if {inc_dire, out_dire}.issubset(pdires[node_id]):
inc_edge_id = inc2id[(node_id, inc_dire)]
out_edge_id = out2id[(node_id, out_dire)]
@@ -632,7 +632,8 @@ class DailyPreprocessor():
self.matching.append(new_row)
self.matching.append(self.match7[self.match7.node_id.isin(self.child_ids)])
self.matching = pd.concat(self.matching)
- self.matching = self.matching.dropna().sort_values(by=['inter_no', 'node_id', 'move_no']).reset_index(drop=True)
+ self.matching = self.matching.dropna(subset=['inc_edge_id', 'out_edge_id'])\
+ .sort_values(by=['inter_no', 'node_id', 'move_no']).reset_index(drop=True)
self.matching['move_no'] = self.matching['move_no'].astype(int)
# self.matching.to_csv(os.path.join(self.path_intermediates, 'matching.csv'))