From 635dd47b03cf80aece2615191530ad1606d52a07 Mon Sep 17 00:00:00 2001 From: govin08 Date: Tue, 16 Apr 2024 13:39:50 +0900 Subject: [PATCH] default state of non-uturn connections of u turn nodes set to G (previously g) --- .../0416_initialize_state.ipynb | 70 +- Intermediates/match6.csv | 88 +- Intermediates/node2init.json | 2 +- Results/sn_1704418500.add.xml | 1266 ++++++++--------- .../preprocess_daily.cpython-38.pyc | Bin 27417 -> 27421 bytes Scripts/preprocess_daily.py | 19 +- 6 files changed, 728 insertions(+), 717 deletions(-) diff --git a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb index 3063e63cb..60694bb4f 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -452,7 +452,73 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'u00': 4, 'u20': 2, 'u30': 4, 'u31': 4, 'u32': 7, 'u60': 8}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.uid2uindex" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "self.nodes = [self.net.getNode(node_id) for node_id in self.node_ids]\n", + "self.node2init = {}\n", + "# 유턴노드를 제외한 모든 노드에 대하여 초기화 신호 지정\n", + "for node_id in set(self.node_ids) - set(self.u_turn_ids):\n", + " node = self.net.getNode(node_id)\n", + " conns = [(c.getJunctionIndex(), c) for c in node.getConnections()]\n", + " conns = [c for c in conns if c[0] >= 0]\n", + " conns = sorted(conns, key=lambda x: x[0])\n", + " state = []\n", + " for i, ci in conns: # i번째 connection : ci\n", + " if ci.getTLLinkIndex() < 0:\n", + " continue\n", + " are_foes = False\n", + " # 합류지점이 다르면서 상충되는 cj가 존재하면 r, 그외에는 g\n", + " for j, cj in conns: # j번째 connection : cj\n", + " # ci, cj의 합류지점이 같으면 통과\n", + " if ci.getTo() == cj.getTo():\n", + " continue\n", + " # ci, cj가 상충되면 are_foes를 True로 지정.\n", + " if node.areFoes(i, j):\n", + " are_foes = True\n", + " break\n", + " state.append('r' if are_foes else 'g')\n", + " self.node2init[node_id] = state\n", + "\n", + "# 유턴노드에 대하여 초기화 신호 지정\n", + "for node_id in self.u_turn_ids:\n", + " node = self.net.getNode(node_id)\n", + " conns = [(c.getJunctionIndex(), c) for c in node.getConnections()]\n", + " conns = [c for c in conns if c[0] >= 0]\n", + " conns = sorted(conns, key=lambda x: x[0])\n", + " state = []\n", + " for i, ci in conns:\n", + " if ci.getTLLinkIndex() < 0:\n", + " continue\n", + " is_uturn = (i == self.uid2uindex[node_id])\n", + " state.append('r' if is_uturn else 'G')\n", + " self.node2init[node_id] = state" + ] + }, + { + "cell_type": "code", + "execution_count": 5, "metadata": {}, "outputs": [ { diff --git a/Intermediates/match6.csv b/Intermediates/match6.csv index c81cc4a94..ab652fda1 100644 --- a/Intermediates/match6.csv +++ b/Intermediates/match6.csv @@ -7,14 +7,14 @@ 5,175,i0,3,B,1,571545870_02,571542797_02,grrrgrrGgrrrrrgrr 6,175,i0,4,A,5,571510153_02,571500487_01,grrrgrrrgrrrrrgrG 7,175,i0,4,B,2,571510153_02,571545870_01,grrrgrrrgrrrrrgGr -8,175,u00,1,A,8,,,ggggrgggg -9,175,u00,1,B,4,,,ggggrgggg -10,175,u00,2,A,7,571500487_02,571500487_01.32,ggggGgggg -11,175,u00,2,B,3,,,ggggrgggg -12,175,u00,3,A,6,,,ggggrgggg -13,175,u00,3,B,1,,,ggggrgggg -14,175,u00,4,A,5,,,ggggrgggg -15,175,u00,4,B,2,,,ggggrgggg +8,175,u00,1,A,8,,,GGGGrGGGG +9,175,u00,1,B,4,,,GGGGrGGGG +10,175,u00,2,A,7,571500487_02,571500487_01.32,GGGGGGGGG +11,175,u00,2,B,3,,,GGGGrGGGG +12,175,u00,3,A,6,,,GGGGrGGGG +13,175,u00,3,B,1,,,GGGGrGGGG +14,175,u00,4,A,5,,,GGGGrGGGG +15,175,u00,4,B,2,,,GGGGrGGGG 16,176,i1,1,A,8,-571542810_01,-571542797_02.99,grrGGGrgrr 17,176,i1,1,B,4,571542797_02.99,571542810_01,gGGrrrrgrr 18,176,i1,2,A,8,-571542810_01,-571542797_02.99,grrGGGrgrr @@ -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,,,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,,,ggrggg +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,,,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 @@ -45,30 +45,30 @@ 43,178,i3,3,B,2,571540303_02.21,571500475_01,grrrrgrrrrgrrrrgGGGr 44,178,i3,4,A,6,-571500475_01,571540303_01,grrrrgGGGrgrrrrgrrrr 45,178,i3,4,B,1,-571500475_01,571540304_01,grrrrgrrrGgrrrrgrrrr -46,178,u30,1,A,8,,,ggggrggg -47,178,u30,1,B,4,,,ggggrggg -48,178,u30,2,A,7,,,ggggrggg -49,178,u30,2,B,3,,,ggggrggg -50,178,u30,3,A,5,,,ggggrggg -51,178,u30,3,B,2,,,ggggrggg -52,178,u30,4,A,6,571556452_01,571556452_02,ggggGggg -53,178,u30,4,B,1,,,ggggrggg -54,178,u31,1,A,8,571500475_02,571500475_01.26,ggggGggg -55,178,u31,1,B,4,,,ggggrggg -56,178,u31,2,A,7,,,ggggrggg -57,178,u31,2,B,3,,,ggggrggg -58,178,u31,3,A,5,,,ggggrggg -59,178,u31,3,B,2,,,ggggrggg -60,178,u31,4,A,6,,,ggggrggg -61,178,u31,4,B,1,,,ggggrggg -62,178,u32,1,A,8,,,gggggggr -63,178,u32,1,B,4,571540303_02,-571540303_02,gggggggG -64,178,u32,2,A,7,,,gggggggr -65,178,u32,2,B,3,,,gggggggr -66,178,u32,3,A,5,,,gggggggr -67,178,u32,3,B,2,,,gggggggr -68,178,u32,4,A,6,,,gggggggr -69,178,u32,4,B,1,,,gggggggr +46,178,u30,1,A,8,,,GGGGrGGG +47,178,u30,1,B,4,,,GGGGrGGG +48,178,u30,2,A,7,,,GGGGrGGG +49,178,u30,2,B,3,,,GGGGrGGG +50,178,u30,3,A,5,,,GGGGrGGG +51,178,u30,3,B,2,,,GGGGrGGG +52,178,u30,4,A,6,571556452_01,571556452_02,GGGGGGGG +53,178,u30,4,B,1,,,GGGGrGGG +54,178,u31,1,A,8,571500475_02,571500475_01.26,GGGGGGGG +55,178,u31,1,B,4,,,GGGGrGGG +56,178,u31,2,A,7,,,GGGGrGGG +57,178,u31,2,B,3,,,GGGGrGGG +58,178,u31,3,A,5,,,GGGGrGGG +59,178,u31,3,B,2,,,GGGGrGGG +60,178,u31,4,A,6,,,GGGGrGGG +61,178,u31,4,B,1,,,GGGGrGGG +62,178,u32,1,A,8,,,GGGGGGGr +63,178,u32,1,B,4,571540303_02,-571540303_02,GGGGGGGG +64,178,u32,2,A,7,,,GGGGGGGr +65,178,u32,2,B,3,,,GGGGGGGr +66,178,u32,3,A,5,,,GGGGGGGr +67,178,u32,3,B,2,,,GGGGGGGr +68,178,u32,4,A,6,,,GGGGGGGr +69,178,u32,4,B,1,,,GGGGGGGr 70,201,i8,1,A,8,-571500569_01,571500583_02,grrrrrrrgGGrgrrr 71,201,i8,1,B,3,-571500569_01,571500618_01,grrrrrrrgrrGgrrr 72,201,i8,2,A,5,571500618_02,571500583_02,grrrrrrrgrrrgrrG @@ -99,11 +99,11 @@ 97,210,i6,3,B,4,571511538_02.121,571500585_01,gGGrgrrrrgrrgrrr 98,210,i6,4,A,8,571500585_02,571511538_01,grrrgrrrrgGGgrrr 99,210,i6,4,B,3,571500585_02,571500535_01,grrrgrrrrgrrgrrr -100,210,u60,1,A,6,,,ggggggggr -101,210,u60,1,B,18,,,ggggggggr -102,210,u60,2,A,5,571500535_02,-571500535_02,ggggggggG -103,210,u60,2,B,2,,,ggggggggr -104,210,u60,3,A,7,,,ggggggggr -105,210,u60,3,B,4,,,ggggggggr -106,210,u60,4,A,8,,,ggggggggr -107,210,u60,4,B,3,,,ggggggggr +100,210,u60,1,A,6,,,GGGGGGGGr +101,210,u60,1,B,18,,,GGGGGGGGr +102,210,u60,2,A,5,571500535_02,-571500535_02,GGGGGGGGG +103,210,u60,2,B,2,,,GGGGGGGGr +104,210,u60,3,A,7,,,GGGGGGGGr +105,210,u60,3,B,4,,,GGGGGGGGr +106,210,u60,4,A,8,,,GGGGGGGGr +107,210,u60,4,B,3,,,GGGGGGGGr diff --git a/Intermediates/node2init.json b/Intermediates/node2init.json index 10176bfea..0c08741ba 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", "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 +{"i2": ["r", "r", "g", "g", "r", "r", "r"], "i6": ["g", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "g", "r", "r", "r"], "c30": ["r", "r", "r", "r", "r", "r"], "i8": ["g", "r", "r", "r", "r", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r"], "i7": ["r", "r", "r", "g", "g", "r", "r"], "i3": ["g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r", "g", "r", "r", "r", "r"], "i1": ["g", "r", "r", "r", "r", "r", "r", "g", "r", "r"], "i9": ["r", "r", "r", "r"], "i0": ["g", "r", "r", "r", "g", "r", "r", "r", "g", "r", "r", "r", "r", "r", "g", "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_1704418500.add.xml b/Results/sn_1704418500.add.xml index ed3b2c4a5..12004995f 100644 --- a/Results/sn_1704418500.add.xml +++ b/Results/sn_1704418500.add.xml @@ -1,689 +1,621 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 dc0cb62eabc1abdc3c9c8e4039477acf5ef0df95..6b8101ff4bef4352de6e6c6832c27d868fc7136c 100644 GIT binary patch delta 726 zcmbV~ziSjh6vyYy{%cp`*_k;_&XV4H1p|^;#+HzSqTJ&2F_F|bIlevuWpTUeSd(hq)jvAN zvRY2K*C%2lO?X|^B);}$yHt6qE?wj0MApmLr(!D|pjurz(#xqB@P?`ZNk3rMHVs)5 zpSZt9d5{Bk6KNw0m9Rk48O;17;Ead2C~rOm!%Cu_K$k|QeCa2l0*p-+V2l*Q*ixYk zc+|JV_iCtEG90S8lZTi`vS}O{<$zMhRZF%Ej-p~2<2cR`#60&W2#1M`7swFO`LxtJ zuw(zQv{%_*`(5MpgJ!Cfv+k2PpfQ9Hfeis( z3N|gKdm9!^>F3uz!fbK*`XWGFyt?rPU`apVKjA`g|7IKDTrpbt25?EgxxEFvIKO%X OU|HWyUOTHExbPbUoy^1l delta 719 zcmbV~ziSjh6vyW~JA1cx`{VXj6MvDyAVNTdNXnEUg(+0HsNkKy7%%b82s@?`W^zJK zun`ZoQi<%^2o|EQWeO1+Ya#!EjbIaOwDRp;jG|qpc)a(9`F=m|F&kTWyaj*J_p6M~ z#E*$~xGL z>1Cj9TZ;#*!!@5}@g!x{jw^i`EOA+Th}0{HT8dn%J>zP(;~P#fFdoI4@hOHT(4Gvt zmikK1>uIF@45qe|2b71pmI@ta#n{J9UDs0@#Y8%yaqI!qjC4l`hnS9L*#PlOTxjjv zv0p3fP4AEWuJP*rbgZx=ktf5P>;|~Ayho7D|3EegrcfJCz20yYBbEZ?z;F}4QNmpm zu8#eMvb`r1uIB$i;jukWEZh0`g--%2$(KtDm`YAG&y}vw2UDk#_2&J^;SmCa5Zr?Y z4k7Zxt$P*@CQq+^z;u53+5#|^zr6k#IGe1=pE#f2y>S{ilYeY~1DeU(<>y$+7jGT` OE+%p3g?-CG3BLgP=F2Vs diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py index ba70ead87..256b3ac08 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -713,10 +713,9 @@ class DailyPreprocessor(): ''' self.nodes = [self.net.getNode(node_id) for node_id in self.node_ids] self.node2init = {} - # 모든 노드들을 순회 - for node_id in self.node_ids: + # 유턴노드를 제외한 모든 노드에 대하여 초기화 신호 지정 + for node_id in set(self.node_ids) - set(self.u_turn_ids): node = self.net.getNode(node_id) - # 모든 connection conns = [(c.getJunctionIndex(), c) for c in node.getConnections()] conns = [c for c in conns if c[0] >= 0] conns = sorted(conns, key=lambda x: x[0]) @@ -737,6 +736,20 @@ class DailyPreprocessor(): state.append('r' if are_foes else 'g') self.node2init[node_id] = state + # 유턴노드에 대하여 초기화 신호 지정 + for node_id in self.u_turn_ids: + node = self.net.getNode(node_id) + conns = [(c.getJunctionIndex(), c) for c in node.getConnections()] + conns = [c for c in conns if c[0] >= 0] + conns = sorted(conns, key=lambda x: x[0]) + state = [] + for i, ci in conns: + if ci.getTLLinkIndex() < 0: + continue + is_uturn = (i == self.uid2uindex[node_id]) + state.append('r' if is_uturn else 'G') + self.node2init[node_id] = state + # 어떤 연결과도 상충이 일어나지는 않지만, 신호가 부여되어 있는 경우에는 r을 부여 for _, row in self.match6.dropna(subset=['inc_edge_id', 'out_edge_id']).iterrows(): node_id = row.node_id