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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
11751B4001180-571500487_01571542797_02i0straight
21752A7001090-571500487_01571545870_01i0left
31752B3179270-571542797_02571510153_01i0left
41753A6090270571545870_02571510153_01i0straight
.......................................
1032102B2270090NaNNaNu60straight
1042103A7000090NaNNaNu60left
1052103B4000180NaNNaNu60straight
1062104A8180000NaNNaNu60straight
1072104B3180270NaNNaNu60left
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
11751B4001180-571500487_01571542797_02i0straight
21752A7001090-571500487_01571545870_01i0left
31752B3179270-571542797_02571510153_01i0left
41753A6090270571545870_02571510153_01i0straight
51753B1090180571545870_02571542797_02i0left
61754A5270000571510153_02571500487_01i0left
71754B2270090571510153_02571545870_01i0straight
81752A7001090571500487_02571500487_01.32u00left
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
01751571545870_02571542797_02i0
11752571510153_02571545870_01i0
21753-571542797_02571510153_01i0
31754-571500487_01571542797_02i0
41755571510153_02571500487_01i0
51756571545870_02571510153_01i0
61757-571500487_01571545870_01i0
71758-571542797_02571500487_01i0
817521-571500487_01571510153_01i0
917521571510153_02571542797_02i0
1017521-571542797_02571545870_01i0
1117521571545870_02571500487_01i0
121757571500487_02571500487_01.32u00
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
02022571510152_01571510152_01.65i9
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
02026571510152_02-571510152_01i9
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
261771A8179000NaNNaNu20straight
271771B4000180NaNNaNu20straight
281772A17NaNNaNNaNNaN571542810_01.51571542810_02u20NaN
291772B18NaNNaNNaNNaNNaNNaNu20NaN
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
81758NaNNaNu00
91754NaNNaNu00
101757571500487_02571500487_01.32u00
111753NaNNaNu00
121756NaNNaNu00
131751NaNNaNu00
141755NaNNaNu00
151752NaNNaNu00
261778NaNNaNu20
271774NaNNaNu20
2817717NaNNaN571542810_01.51571542810_02u20
2917718NaNNaNNaNNaNu20
3017820NaNNaNNaNNaNc30
3117820NaNNaNNaNNaNc30
3217820NaNNaN571542116_01-571542116_02.96c30
3317820NaNNaN571542116_02.96571542116_02.164c30
3417820NaNNaN571542116_01-571542116_02.96c30
3517820NaNNaN571542116_02.96571542116_02.164c30
3617820NaNNaN571542116_01-571542116_02.96c30
3717820NaNNaN571542116_02.96571542116_02.164c30
461788NaNNaNu30
471784NaNNaNu30
481787NaNNaNu30
491783NaNNaNu30
501785NaNNaNu30
511782NaNNaNu30
521786571556452_01571556452_02u30
531781NaNNaNu30
541788571500475_02571500475_01.26u31
551784NaNNaNu31
561787NaNNaNu31
571783NaNNaNu31
581785NaNNaNu31
591782NaNNaNu31
601786NaNNaNu31
611781NaNNaNu31
621788NaNNaNu32
631784571540303_02-571540303_02u32
641787NaNNaNu32
651783NaNNaNu32
661785NaNNaNu32
671782NaNNaNu32
681786NaNNaNu32
691781NaNNaNu32
1002106NaNNaNu60
10121018NaNNaNNaNNaNu60
1022105571500535_02-571500535_02u60
1032102NaNNaNu60
1042107NaNNaNu60
1052104NaNNaNu60
1062108NaNNaNu60
1072103NaNNaNu60
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
2117717NaNNaN571542810_01.51571542810_02u20
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
2117717NaNNaN571542810_01.51571542810_02u20
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
phase_noring_typemove_noangle_codeinc_edge_idout_edge_id
01A4357140e1e6
11B7357088e1e4
22A4357140e1e6
32B8142359e5e2
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
phase_noring_typemove_noangle_codeinc_edge_idout_edge_idinc_angleout_angle
01A4357140e1e6357140
11B7357088e1e435788
22A4357140e1e6357140
32B8142359e5e2142359
\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'))