Browse Source

default state of non-uturn connections of u turn nodes set to G (previously g)

master
김선중 1 year ago
parent
commit
635dd47b03
6 changed files with 728 additions and 717 deletions
  1. +68
    -2
      Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb
  2. +44
    -44
      Intermediates/match6.csv
  3. +1
    -1
      Intermediates/node2init.json
  4. +599
    -667
      Results/sn_1704418500.add.xml
  5. BIN
      Scripts/__pycache__/preprocess_daily.cpython-38.pyc
  6. +16
    -3
      Scripts/preprocess_daily.py

+ 68
- 2
Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb View File

@ -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": [
{

+ 44
- 44
Intermediates/match6.csv View File

@ -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

+ 1
- 1
Intermediates/node2init.json View File

@ -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"]}
{"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"]}

+ 599
- 667
Results/sn_1704418500.add.xml
File diff suppressed because it is too large
View File


BIN
Scripts/__pycache__/preprocess_daily.cpython-38.pyc View File


+ 16
- 3
Scripts/preprocess_daily.py View File

@ -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

Loading…
Cancel
Save