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 08b012be0..2a1751f9e 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
@@ -253,18 +253,12 @@
"text": [
"1. 데이터를 로드합니다.\n",
"1-1. 네트워크가 로드되었습니다.\n",
- "1-2. 테이블들이 로드되었습니다.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
+ "1-2. 테이블들이 로드되었습니다.\n",
"1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
"1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
"1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n",
"2-1. 매칭 테이블들을 생성했습니다.\n",
- "2-2. 비보호우회전(g)을 배정했습니다.\n"
+ "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n"
]
}
],
@@ -872,18 +866,12 @@
"text": [
"1. 데이터를 로드합니다.\n",
"1-1. 네트워크가 로드되었습니다.\n",
- "1-2. 테이블들이 로드되었습니다.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
+ "1-2. 테이블들이 로드되었습니다.\n",
"1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
"1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
"1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n",
"2-1. 매칭 테이블들을 생성했습니다.\n",
- "2-2. 비보호우회전(g)을 배정했습니다.\n"
+ "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n"
]
}
],
@@ -895,2481 +883,139 @@
"self.initialize_state() # 2-2 신호 초기화"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.p2UPLindices = dict() # parent id to unprotected left index\n",
+ "for parent_id in self.parent_ids:\n",
+ " init_state = self.node2init[parent_id]\n",
+ " # 우회전 이동류 인덱스\n",
+ " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n",
+ " # from-to가 지정된 이동류 인덱스\n",
+ " indices_assigned = []\n",
+ " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n",
+ " for row in m5.itertuples():\n",
+ " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
+ " out_edge = self.net.getEdge(row.out_edge_id)\n",
+ " conns = inc_edge.getConnections(out_edge)\n",
+ " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
+ " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
+ " indices = [conn.getTLLinkIndex() for conn in conns]\n",
+ " indices_assigned.extend(indices)\n",
+ " # 좌회전 이동류 인덱스\n",
+ " indices_left = []\n",
+ " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n",
+ " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
+ " out_edge = self.net.getEdge(row.out_edge_id)\n",
+ " conns = inc_edge.getConnections(out_edge)\n",
+ " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
+ " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
+ " indices = [conn.getTLLinkIndex() for conn in conns]\n",
+ " indices_left.extend(indices)\n",
+ " # 비보호좌회전 인덱스 (unprotected left index)\n",
+ " UPLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n",
+ " self.p2UPLindices[parent_id] = UPLindices\n"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
+ "outputs": [],
+ "source": [
+ "self.p2UPLindices = dict() # parent id to unprotected left index\n",
+ "for parent_id in self.parent_ids:\n",
+ " init_state = self.node2init[parent_id]\n",
+ " # 우회전 이동류 인덱스\n",
+ " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n",
+ " # from-to가 지정된 이동류 인덱스\n",
+ " indices_assigned = []\n",
+ " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n",
+ " for row in m5.itertuples():\n",
+ " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
+ " out_edge = self.net.getEdge(row.out_edge_id)\n",
+ " conns = inc_edge.getConnections(out_edge)\n",
+ " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
+ " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
+ " indices = [conn.getTLLinkIndex() for conn in conns]\n",
+ " indices_assigned.extend(indices)\n",
+ " # 좌회전 이동류 인덱스\n",
+ " indices_left = []\n",
+ " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n",
+ " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
+ " out_edge = self.net.getEdge(row.out_edge_id)\n",
+ " conns = inc_edge.getConnections(out_edge)\n",
+ " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
+ " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
+ " indices = [conn.getTLLinkIndex() for conn in conns]\n",
+ " indices_left.extend(indices)\n",
+ " # 비보호좌회전 인덱스 (unprotected left index)\n",
+ " UPLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n",
+ " self.p2UPLindices[parent_id] = dict()\n",
+ " for UPLindex in UPLindices:\n",
+ " node = self.net.getNode(parent_id)\n",
+ " conns = node.getConnections()\n",
+ " conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n",
+ " inc_edge_ids = [conn.getFrom().getID() for conn in conns]\n",
+ " self.p2UPLindices[parent_id][UPLindex] = inc_edge_ids"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{2: ['571542073_01']}"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.p2UPLindices[self.parent_ids[5]]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "i0\n"
+ "2\n",
+ "571542073_01\n"
]
- },
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 175 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " -571542797_02 | \n",
- " 571500487_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 175 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 001 | \n",
- " 180 | \n",
- " -571500487_01 | \n",
- " 571542797_02 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 175 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 001 | \n",
- " 090 | \n",
- " -571500487_01 | \n",
- " 571545870_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 175 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 179 | \n",
- " 270 | \n",
- " -571542797_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 175 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571545870_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 175 | \n",
- " 3 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " 571545870_02 | \n",
- " 571542797_02 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " 175 | \n",
- " 4 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " 571510153_02 | \n",
- " 571500487_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 7 | \n",
- " 175 | \n",
- " 4 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571510153_02 | \n",
- " 571545870_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\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",
- "\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 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n",
- "i1\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 8 | \n",
- " 176 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 356 | \n",
- " -571542810_01 | \n",
- " -571542797_02.99 | \n",
- " i1 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " 176 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 359 | \n",
- " 180 | \n",
- " 571542797_02.99 | \n",
- " 571542810_01 | \n",
- " i1 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 10 | \n",
- " 176 | \n",
- " 2 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 356 | \n",
- " -571542810_01 | \n",
- " -571542797_02.99 | \n",
- " i1 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 11 | \n",
- " 176 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " -571542810_01 | \n",
- " 571543469_01 | \n",
- " i1 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 12 | \n",
- " 176 | \n",
- " 3 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 356 | \n",
- " 571543469_02 | \n",
- " -571542797_02.99 | \n",
- " i1 | \n",
- " left | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "8 176 1 A 8 남 북 180 \n",
- "9 176 1 B 4 북 남 359 \n",
- "10 176 2 A 8 남 북 180 \n",
- "11 176 2 B 3 남 서 180 \n",
- "12 176 3 A 5 서 북 270 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "8 356 -571542810_01 -571542797_02.99 i1 straight \n",
- "9 180 571542797_02.99 571542810_01 i1 straight \n",
- "10 356 -571542810_01 -571542797_02.99 i1 straight \n",
- "11 270 -571542810_01 571543469_01 i1 left \n",
- "12 356 571543469_02 -571542797_02.99 i1 left "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n",
- "i2\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 14 | \n",
- " 177 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " i2 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 15 | \n",
- " 177 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " i2 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "14 177 1 A 8 남 북 179 \n",
- "15 177 1 B 4 북 남 000 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "14 000 -571542809_01 571542811_01 i2 straight \n",
- "15 180 571542811_02 571542809_01 i2 straight "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n",
- "i3\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 18 | \n",
- " 178 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " 571540304_02 | \n",
- " 571556450_01 | \n",
- " i3 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 19 | \n",
- " 178 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571556450_02 | \n",
- " 571540304_01 | \n",
- " i3 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 20 | \n",
- " 178 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " 571556450_02 | \n",
- " 571500475_01 | \n",
- " i3 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 21 | \n",
- " 178 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " 571540304_02 | \n",
- " 571540303_01 | \n",
- " i3 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 22 | \n",
- " 178 | \n",
- " 3 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " 571540303_02.21 | \n",
- " 571556450_01 | \n",
- " i3 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 23 | \n",
- " 178 | \n",
- " 3 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571540303_02.21 | \n",
- " 571500475_01 | \n",
- " i3 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 24 | \n",
- " 178 | \n",
- " 4 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " -571500475_01 | \n",
- " 571540303_01 | \n",
- " i3 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 25 | \n",
- " 178 | \n",
- " 4 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " -571500475_01 | \n",
- " 571540304_01 | \n",
- " i3 | \n",
- " left | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "18 178 1 A 8 남 북 180 \n",
- "19 178 1 B 4 북 남 000 \n",
- "20 178 2 A 7 북 동 000 \n",
- "21 178 2 B 3 남 서 180 \n",
- "22 178 3 A 5 서 북 270 \n",
- "23 178 3 B 2 서 동 270 \n",
- "24 178 4 A 6 동 서 090 \n",
- "25 178 4 B 1 동 남 090 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "18 000 571540304_02 571556450_01 i3 straight \n",
- "19 180 571556450_02 571540304_01 i3 straight \n",
- "20 090 571556450_02 571500475_01 i3 left \n",
- "21 270 571540304_02 571540303_01 i3 left \n",
- "22 000 571540303_02.21 571556450_01 i3 left \n",
- "23 090 571540303_02.21 571500475_01 i3 straight \n",
- "24 270 -571500475_01 571540303_01 i3 straight \n",
- "25 180 -571500475_01 571540304_01 i3 left "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n",
- "i6\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 48 | \n",
- " 210 | \n",
- " 1 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " -571542115_01 | \n",
- " 571500535_01 | \n",
- " i6 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 50 | \n",
- " 210 | \n",
- " 2 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " 571500535_02.18 | \n",
- " 571511538_01 | \n",
- " i6 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 51 | \n",
- " 210 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571500535_02.18 | \n",
- " 571542115_01 | \n",
- " i6 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 52 | \n",
- " 210 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " 571511538_02.121 | \n",
- " 571542115_01 | \n",
- " i6 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 53 | \n",
- " 210 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571511538_02.121 | \n",
- " 571500585_01 | \n",
- " i6 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 54 | \n",
- " 210 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " 571500585_02 | \n",
- " 571511538_01 | \n",
- " i6 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 55 | \n",
- " 210 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " 571500585_02 | \n",
- " 571500535_01 | \n",
- " i6 | \n",
- " left | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "48 210 1 A 6 동 서 090 \n",
- "50 210 2 A 5 서 북 270 \n",
- "51 210 2 B 2 서 동 270 \n",
- "52 210 3 A 7 북 동 000 \n",
- "53 210 3 B 4 북 남 000 \n",
- "54 210 4 A 8 남 북 180 \n",
- "55 210 4 B 3 남 서 180 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "48 270 -571542115_01 571500535_01 i6 straight \n",
- "50 000 571500535_02.18 571511538_01 i6 left \n",
- "51 090 571500535_02.18 571542115_01 i6 straight \n",
- "52 090 571511538_02.121 571542115_01 i6 left \n",
- "53 180 571511538_02.121 571500585_01 i6 straight \n",
- "54 000 571500585_02 571511538_01 i6 straight \n",
- "55 270 571500585_02 571500535_01 i6 left "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[8]\n",
- "i7\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 40 | \n",
- " 206 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " -571511538_02 | \n",
- " 571542073_02 | \n",
- " i7 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 41 | \n",
- " 206 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571542073_01 | \n",
- " 571511538_02 | \n",
- " i7 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 44 | \n",
- " 206 | \n",
- " 3 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " -571511538_02 | \n",
- " 571542073_02 | \n",
- " i7 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 45 | \n",
- " 206 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571542073_01 | \n",
- " 571511538_02 | \n",
- " i7 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "40 206 1 A 8 남 북 180 \n",
- "41 206 1 B 4 북 남 000 \n",
- "44 206 3 A 8 남 북 180 \n",
- "45 206 3 B 4 북 남 000 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "40 000 -571511538_02 571542073_02 i7 straight \n",
- "41 180 571542073_01 571511538_02 i7 straight \n",
- "44 000 -571511538_02 571542073_02 i7 straight \n",
- "45 180 571542073_01 571511538_02 i7 straight "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[2]\n",
- "i8\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 26 | \n",
- " 201 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " -571500569_01 | \n",
- " 571500583_02 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 27 | \n",
- " 201 | \n",
- " 1 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " -571500569_01 | \n",
- " 571500618_01 | \n",
- " i8 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 28 | \n",
- " 201 | \n",
- " 2 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " 571500618_02 | \n",
- " 571500583_02 | \n",
- " i8 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 29 | \n",
- " 201 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571500618_02 | \n",
- " 571500617_01 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 30 | \n",
- " 201 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571500617_02 | \n",
- " 571500618_01 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 31 | \n",
- " 201 | \n",
- " 3 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571500618_02 | \n",
- " 571500617_01 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 32 | \n",
- " 201 | \n",
- " 4 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571500617_02 | \n",
- " 571500618_01 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 33 | \n",
- " 201 | \n",
- " 4 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " 571500617_02 | \n",
- " 571500569_01 | \n",
- " i8 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 34 | \n",
- " 201 | \n",
- " 5 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " 571500583_01 | \n",
- " 571500617_01 | \n",
- " i8 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 35 | \n",
- " 201 | \n",
- " 5 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571500583_01 | \n",
- " 571500569_01 | \n",
- " i8 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "26 201 1 A 8 남 북 180 \n",
- "27 201 1 B 3 남 서 180 \n",
- "28 201 2 A 5 서 북 270 \n",
- "29 201 2 B 2 서 동 270 \n",
- "30 201 3 A 6 동 서 090 \n",
- "31 201 3 B 2 서 동 270 \n",
- "32 201 4 A 6 동 서 090 \n",
- "33 201 4 B 1 동 남 090 \n",
- "34 201 5 A 7 북 동 000 \n",
- "35 201 5 B 4 북 남 000 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "26 000 -571500569_01 571500583_02 i8 straight \n",
- "27 270 -571500569_01 571500618_01 i8 left \n",
- "28 000 571500618_02 571500583_02 i8 left \n",
- "29 090 571500618_02 571500617_01 i8 straight \n",
- "30 270 571500617_02 571500618_01 i8 straight \n",
- "31 090 571500618_02 571500617_01 i8 straight \n",
- "32 270 571500617_02 571500618_01 i8 straight \n",
- "33 180 571500617_02 571500569_01 i8 left \n",
- "34 090 571500583_01 571500617_01 i8 left \n",
- "35 180 571500583_01 571500569_01 i8 straight "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n",
- "i9\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 36 | \n",
- " 202 | \n",
- " 1 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571510152_02 | \n",
- " -571510152_01 | \n",
- " i9 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 37 | \n",
- " 202 | \n",
- " 1 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " 571510152_01 | \n",
- " 571510152_01.65 | \n",
- " i9 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "36 202 1 A 6 동 서 090 \n",
- "37 202 1 B 2 서 동 270 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "36 270 571510152_02 -571510152_01 i9 straight \n",
- "37 090 571510152_01 571510152_01.65 i9 straight "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[]\n"
- ]
- }
- ],
- "source": [
- "self.p2PLindices = dict() # parent id to protected left index\n",
- "for parent_id in self.parent_ids:\n",
- " print(parent_id)\n",
- " init_state = self.node2init[parent_id]\n",
- " # 우회전 이동류 인덱스\n",
- " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n",
- " # from-to가 지정된 이동류 인덱스\n",
- " indices_assigned = []\n",
- " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n",
- " display(m5)\n",
- " for row in m5.itertuples():\n",
- " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
- " out_edge = self.net.getEdge(row.out_edge_id)\n",
- " conns = inc_edge.getConnections(out_edge)\n",
- " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
- " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
- " indices = [conn.getTLLinkIndex() for conn in conns]\n",
- " indices_assigned.extend(indices)\n",
- " # 좌회전 이동류 인덱스\n",
- " indices_left = []\n",
- " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n",
- " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
- " out_edge = self.net.getEdge(row.out_edge_id)\n",
- " conns = inc_edge.getConnections(out_edge)\n",
- " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n",
- " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n",
- " indices = [conn.getTLLinkIndex() for conn in conns]\n",
- " indices_left.extend(indices)\n",
- "\n",
- " PLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n",
- " self.p2PLindices[parent_id] = PLindices\n",
- " print(PLindices)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 14 | \n",
- " 177 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " i2 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 15 | \n",
- " 177 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " i2 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 16 | \n",
- " 177 | \n",
- " 2 | \n",
- " A | \n",
- " 17 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " i2 | \n",
- " NaN | \n",
- "
\n",
- " \n",
- " 17 | \n",
- " 177 | \n",
- " 2 | \n",
- " B | \n",
- " 18 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " i2 | \n",
- " NaN | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "14 177 1 A 8 남 북 179 \n",
- "15 177 1 B 4 북 남 000 \n",
- "16 177 2 A 17 NaN NaN NaN \n",
- "17 177 2 B 18 NaN NaN NaN \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "14 000 -571542809_01 571542811_01 i2 straight \n",
- "15 180 571542811_02 571542809_01 i2 straight \n",
- "16 NaN NaN NaN i2 NaN \n",
- "17 NaN NaN NaN i2 NaN "
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "self.match5[(self.match5.node_id=='i2')]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1. 데이터를 로드합니다.\n",
- "1-1. 네트워크가 로드되었습니다.\n",
- "1-2. 테이블들이 로드되었습니다.\n",
- "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
- "1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
- "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n",
- "2-1. 매칭 테이블들을 생성했습니다.\n",
- "2-2. 비보호우회전(g)을 배정했습니다.\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 32 | \n",
- " 177 | \n",
- " i2 | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 33 | \n",
- " 177 | \n",
- " i2 | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " -571542809_01 | \n",
- " 571542107_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 34 | \n",
- " 177 | \n",
- " i2 | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " -571542809_01 | \n",
- " 571542809_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 35 | \n",
- " 177 | \n",
- " i2 | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 36 | \n",
- " 177 | \n",
- " i2 | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 37 | \n",
- " 177 | \n",
- " i2 | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 38 | \n",
- " 177 | \n",
- " i2 | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 571542811_02 | \n",
- " 571542107_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 39 | \n",
- " 177 | \n",
- " i2 | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 40 | \n",
- " 177 | \n",
- " i2 | \n",
- " 9 | \n",
- " 북동 | \n",
- " 남동 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 41 | \n",
- " 177 | \n",
- " i2 | \n",
- " 10 | \n",
- " 남서 | \n",
- " 북동 | \n",
- " -571542809_01 | \n",
- " 571542107_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 42 | \n",
- " 177 | \n",
- " i2 | \n",
- " 11 | \n",
- " 남동 | \n",
- " 남서 | \n",
- " -571542809_01 | \n",
- " 571542809_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 43 | \n",
- " 177 | \n",
- " i2 | \n",
- " 12 | \n",
- " 북서 | \n",
- " 남동 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 44 | \n",
- " 177 | \n",
- " i2 | \n",
- " 13 | \n",
- " 남서 | \n",
- " 북서 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 45 | \n",
- " 177 | \n",
- " i2 | \n",
- " 14 | \n",
- " 북동 | \n",
- " 남서 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 46 | \n",
- " 177 | \n",
- " i2 | \n",
- " 15 | \n",
- " 북서 | \n",
- " 북동 | \n",
- " 571542811_02 | \n",
- " 571542107_01 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 47 | \n",
- " 177 | \n",
- " i2 | \n",
- " 16 | \n",
- " 남동 | \n",
- " 북서 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id move_no inc_dire out_dire inc_edge_id out_edge_id \\\n",
- "32 177 i2 1 동 남 571542107_02 571542809_01 \n",
- "33 177 i2 2 서 동 -571542809_01 571542107_01 \n",
- "34 177 i2 3 남 서 -571542809_01 571542809_01 \n",
- "35 177 i2 4 북 남 571542811_02 571542809_01 \n",
- "36 177 i2 5 서 북 -571542809_01 571542811_01 \n",
- "37 177 i2 6 동 서 571542107_02 571542809_01 \n",
- "38 177 i2 7 북 동 571542811_02 571542107_01 \n",
- "39 177 i2 8 남 북 -571542809_01 571542811_01 \n",
- "40 177 i2 9 북동 남동 571542107_02 571542809_01 \n",
- "41 177 i2 10 남서 북동 -571542809_01 571542107_01 \n",
- "42 177 i2 11 남동 남서 -571542809_01 571542809_01 \n",
- "43 177 i2 12 북서 남동 571542811_02 571542809_01 \n",
- "44 177 i2 13 남서 북서 -571542809_01 571542811_01 \n",
- "45 177 i2 14 북동 남서 571542107_02 571542809_01 \n",
- "46 177 i2 15 북서 북동 571542811_02 571542107_01 \n",
- "47 177 i2 16 남동 북서 -571542809_01 571542811_01 \n",
- "\n",
- " turn_type \n",
- "32 left \n",
- "33 straight \n",
- "34 left \n",
- "35 straight \n",
- "36 straight \n",
- "37 straight \n",
- "38 left \n",
- "39 straight \n",
- "40 left \n",
- "41 straight \n",
- "42 left \n",
- "43 straight \n",
- "44 straight \n",
- "45 straight \n",
- "46 left \n",
- "47 straight "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 32 | \n",
- " 177 | \n",
- " i2 | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 33 | \n",
- " 177 | \n",
- " i2 | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " -571542809_01 | \n",
- " 571542107_01 | \n",
- " straight | \n",
- " rrgGrrr | \n",
- "
\n",
- " \n",
- " 34 | \n",
- " 177 | \n",
- " i2 | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " -571542809_01 | \n",
- " 571542809_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 35 | \n",
- " 177 | \n",
- " i2 | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- " GGggrrr | \n",
- "
\n",
- " \n",
- " 36 | \n",
- " 177 | \n",
- " i2 | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- " rrggGGG | \n",
- "
\n",
- " \n",
- " 37 | \n",
- " 177 | \n",
- " i2 | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 38 | \n",
- " 177 | \n",
- " i2 | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 571542811_02 | \n",
- " 571542107_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 39 | \n",
- " 177 | \n",
- " i2 | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- " rrggGGG | \n",
- "
\n",
- " \n",
- " 40 | \n",
- " 177 | \n",
- " i2 | \n",
- " 9 | \n",
- " 북동 | \n",
- " 남동 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 41 | \n",
- " 177 | \n",
- " i2 | \n",
- " 10 | \n",
- " 남서 | \n",
- " 북동 | \n",
- " -571542809_01 | \n",
- " 571542107_01 | \n",
- " straight | \n",
- " rrgGrrr | \n",
- "
\n",
- " \n",
- " 42 | \n",
- " 177 | \n",
- " i2 | \n",
- " 11 | \n",
- " 남동 | \n",
- " 남서 | \n",
- " -571542809_01 | \n",
- " 571542809_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 43 | \n",
- " 177 | \n",
- " i2 | \n",
- " 12 | \n",
- " 북서 | \n",
- " 남동 | \n",
- " 571542811_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- " GGggrrr | \n",
- "
\n",
- " \n",
- " 44 | \n",
- " 177 | \n",
- " i2 | \n",
- " 13 | \n",
- " 남서 | \n",
- " 북서 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- " rrggGGG | \n",
- "
\n",
- " \n",
- " 45 | \n",
- " 177 | \n",
- " i2 | \n",
- " 14 | \n",
- " 북동 | \n",
- " 남서 | \n",
- " 571542107_02 | \n",
- " 571542809_01 | \n",
- " straight | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 46 | \n",
- " 177 | \n",
- " i2 | \n",
- " 15 | \n",
- " 북서 | \n",
- " 북동 | \n",
- " 571542811_02 | \n",
- " 571542107_01 | \n",
- " left | \n",
- " rrggrrr | \n",
- "
\n",
- " \n",
- " 47 | \n",
- " 177 | \n",
- " i2 | \n",
- " 16 | \n",
- " 남동 | \n",
- " 북서 | \n",
- " -571542809_01 | \n",
- " 571542811_01 | \n",
- " straight | \n",
- " rrggGGG | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id move_no inc_dire out_dire inc_edge_id out_edge_id \\\n",
- "32 177 i2 1 동 남 571542107_02 571542809_01 \n",
- "33 177 i2 2 서 동 -571542809_01 571542107_01 \n",
- "34 177 i2 3 남 서 -571542809_01 571542809_01 \n",
- "35 177 i2 4 북 남 571542811_02 571542809_01 \n",
- "36 177 i2 5 서 북 -571542809_01 571542811_01 \n",
- "37 177 i2 6 동 서 571542107_02 571542809_01 \n",
- "38 177 i2 7 북 동 571542811_02 571542107_01 \n",
- "39 177 i2 8 남 북 -571542809_01 571542811_01 \n",
- "40 177 i2 9 북동 남동 571542107_02 571542809_01 \n",
- "41 177 i2 10 남서 북동 -571542809_01 571542107_01 \n",
- "42 177 i2 11 남동 남서 -571542809_01 571542809_01 \n",
- "43 177 i2 12 북서 남동 571542811_02 571542809_01 \n",
- "44 177 i2 13 남서 북서 -571542809_01 571542811_01 \n",
- "45 177 i2 14 북동 남서 571542107_02 571542809_01 \n",
- "46 177 i2 15 북서 북동 571542811_02 571542107_01 \n",
- "47 177 i2 16 남동 북서 -571542809_01 571542811_01 \n",
- "\n",
- " turn_type state \n",
- "32 left rrggrrr \n",
- "33 straight rrgGrrr \n",
- "34 left rrggrrr \n",
- "35 straight GGggrrr \n",
- "36 straight rrggGGG \n",
- "37 straight rrggrrr \n",
- "38 left rrggrrr \n",
- "39 straight rrggGGG \n",
- "40 left rrggrrr \n",
- "41 straight rrgGrrr \n",
- "42 left rrggrrr \n",
- "43 straight GGggrrr \n",
- "44 straight rrggGGG \n",
- "45 straight rrggrrr \n",
- "46 left rrggrrr \n",
- "47 straight rrggGGG "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "import copy\n",
- "self = DailyPreprocessor()\n",
- "self.load_data() # 1. 데이터 불러오기\n",
- "self.get_matches() # 2-1 매칭테이블 생성\n",
- "self.initialize_state() # 2-2 신호 초기화\n",
- "display(self.matching[self.matching.node_id=='i2'])\n",
- "# matching에 신호 배정\n",
- "for i, row in self.matching.iterrows():\n",
- " node_id = row.node_id\n",
- " move_no = row.move_no\n",
- " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
- " out_edge = self.net.getEdge(row.out_edge_id)\n",
- " state = copy.deepcopy(self.node2init[node_id])\n",
- " for conn in inc_edge.getConnections(out_edge):\n",
- " index = conn.getTLLinkIndex()\n",
- " if index >= 0:\n",
- " state[index] = 'G'\n",
- " self.matching.at[i, 'state'] = ''.join(state)\n",
- "\n",
- "display(self.matching[self.matching.node_id=='i2'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "# matching의 각 행을 순회\n",
- "for row in self.matching.itertuples(index=True):\n",
- " node_id = row.node_id\n",
- " move_no = row.move_no\n",
- " inc_edge_id = row.inc_edge_id\n",
- " out_edge_id = row.out_edge_id\n",
- " state = copy.deepcopy(self.node2init)[node_id]\n",
- "\n",
- " if move_no != 21:\n",
- " inc_edge = self.net.getEdge(inc_edge_id)\n",
- " out_edge = self.net.getEdge(out_edge_id)\n",
- " for conn in inc_edge.getConnections(out_edge):\n",
- " index = conn.getTLLinkIndex()\n",
- " if index >= 0:\n",
- " state[index] = 'G'\n",
- " self.matching.at[row.Index, 'state'] = ''.join(state)\n",
- "\n",
- "self.matching = self.matching.dropna(subset='state')\n",
- "self.matching = self.matching.reset_index(drop=True)\n",
- "self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'inc_edge_id', 'out_edge_id', 'state']]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 175 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " -571542797_02 | \n",
- " 571500487_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 175 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 001 | \n",
- " 180 | \n",
- " -571500487_01 | \n",
- " 571542797_02 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 175 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 001 | \n",
- " 090 | \n",
- " -571500487_01 | \n",
- " 571545870_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 175 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 179 | \n",
- " 270 | \n",
- " -571542797_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 175 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571545870_02 | \n",
- " 571510153_01 | \n",
- " i0 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 103 | \n",
- " 210 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 104 | \n",
- " 210 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- "
\n",
- " \n",
- " 105 | \n",
- " 210 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 106 | \n",
- " 210 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- "
\n",
- " \n",
- " 107 | \n",
- " 210 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- "
\n",
- " \n",
- "
\n",
- "
108 rows × 12 columns
\n",
- "
"
- ],
- "text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "0 175 1 A 8 남 북 179 \n",
- "1 175 1 B 4 북 남 001 \n",
- "2 175 2 A 7 북 동 001 \n",
- "3 175 2 B 3 남 서 179 \n",
- "4 175 3 A 6 동 서 090 \n",
- ".. ... ... ... ... ... ... ... \n",
- "103 210 2 B 2 서 동 270 \n",
- "104 210 3 A 7 북 동 000 \n",
- "105 210 3 B 4 북 남 000 \n",
- "106 210 4 A 8 남 북 180 \n",
- "107 210 4 B 3 남 서 180 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "0 000 -571542797_02 571500487_01 i0 straight \n",
- "1 180 -571500487_01 571542797_02 i0 straight \n",
- "2 090 -571500487_01 571545870_01 i0 left \n",
- "3 270 -571542797_02 571510153_01 i0 left \n",
- "4 270 571545870_02 571510153_01 i0 straight \n",
- ".. ... ... ... ... ... \n",
- "103 090 NaN NaN u60 straight \n",
- "104 090 NaN NaN u60 left \n",
- "105 180 NaN NaN u60 straight \n",
- "106 000 NaN NaN u60 straight \n",
- "107 270 NaN NaN u60 left \n",
- "\n",
- "[108 rows x 12 columns]"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2-3. 직진 및 좌회전(G)을 배정했습니다.\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 175 | \n",
- " i0 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " -571542797_02 | \n",
- " 571500487_01 | \n",
- " grrrgrrrgGGGGrgrr | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 175 | \n",
- " i0 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " -571500487_01 | \n",
- " 571542797_02 | \n",
- " gGGrgrrrgrrrrrgrr | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 175 | \n",
- " i0 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " -571500487_01 | \n",
- " 571545870_01 | \n",
- " grrGgrrrgrrrrrgrr | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 175 | \n",
- " i0 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " -571542797_02 | \n",
- " 571510153_01 | \n",
- " grrrgrrrgrrrrGgrr | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 175 | \n",
- " i0 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 571545870_02 | \n",
- " 571510153_01 | \n",
- " grrrgGGrgrrrrrgrr | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 103 | \n",
- " 210 | \n",
- " u60 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " NaN | \n",
- " NaN | \n",
- " GGGGGGGGr | \n",
- "
\n",
- " \n",
- " 104 | \n",
- " 210 | \n",
- " u60 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " NaN | \n",
- " NaN | \n",
- " GGGGGGGGr | \n",
- "
\n",
- " \n",
- " 105 | \n",
- " 210 | \n",
- " u60 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " NaN | \n",
- " NaN | \n",
- " GGGGGGGGr | \n",
- "
\n",
- " \n",
- " 106 | \n",
- " 210 | \n",
- " u60 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " NaN | \n",
- " NaN | \n",
- " GGGGGGGGr | \n",
- "
\n",
- " \n",
- " 107 | \n",
- " 210 | \n",
- " u60 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " NaN | \n",
- " NaN | \n",
- " GGGGGGGGr | \n",
- "
\n",
- " \n",
- "
\n",
- "
108 rows × 8 columns
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id phase_no ring_type move_no inc_edge_id \\\n",
- "0 175 i0 1 A 8 -571542797_02 \n",
- "1 175 i0 1 B 4 -571500487_01 \n",
- "2 175 i0 2 A 7 -571500487_01 \n",
- "3 175 i0 2 B 3 -571542797_02 \n",
- "4 175 i0 3 A 6 571545870_02 \n",
- ".. ... ... ... ... ... ... \n",
- "103 210 u60 2 B 2 NaN \n",
- "104 210 u60 3 A 7 NaN \n",
- "105 210 u60 3 B 4 NaN \n",
- "106 210 u60 4 A 8 NaN \n",
- "107 210 u60 4 B 3 NaN \n",
- "\n",
- " out_edge_id state \n",
- "0 571500487_01 grrrgrrrgGGGGrgrr \n",
- "1 571542797_02 gGGrgrrrgrrrrrgrr \n",
- "2 571545870_01 grrGgrrrgrrrrrgrr \n",
- "3 571510153_01 grrrgrrrgrrrrGgrr \n",
- "4 571510153_01 grrrgGGrgrrrrrgrr \n",
- ".. ... ... \n",
- "103 NaN GGGGGGGGr \n",
- "104 NaN GGGGGGGGr \n",
- "105 NaN GGGGGGGGr \n",
- "106 NaN GGGGGGGGr \n",
- "107 NaN GGGGGGGGr \n",
- "\n",
- "[108 rows x 8 columns]"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
}
],
"source": [
- "display(self.match6)\n",
- "self.assign_signals() # 2-3 신호배정\n",
- "display(self.match6)"
+ "for UPLindex in UPLindices:\n",
+ " node = self.net.getNode(parent_id)\n",
+ " conns = node.getConnections()\n",
+ " conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n",
+ " inc_edge_ids = [conn.getFrom().getID() for conn in conns]\n",
+ "\n",
+ "\n",
+ "parent_id = self.parent_ids[5]\n",
+ "UPLindices = self.p2UPLindices[parent_id]\n",
+ "UPLindex = UPLindices[0]\n",
+ "print(UPLindex)\n",
+ "\n",
+ "node = self.net.getNode(parent_id)\n",
+ "conns = node.getConnections()\n",
+ "conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n",
+ "conn = conns[0]\n",
+ "inc_edge = conn.getFrom().getID()\n",
+ "print(inc_edge)"
]
}
],
diff --git a/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb b/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb
new file mode 100644
index 000000000..850dc5032
--- /dev/null
+++ b/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb
@@ -0,0 +1,304 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import sys\n",
+ "import copy\n",
+ "sys.path.append('../../Scripts')\n",
+ "from preprocess_daily import DailyPreprocessor\n",
+ "from generate_signals import SignalGenerator"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. 데이터를 로드합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n",
+ "1-4. 테이블들의 무결성 검사를 완료했습니다.\n",
+ "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n",
+ "2-1. 매칭 테이블들을 생성했습니다.\n",
+ "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n",
+ "2-3. 유턴 인덱스 / 비보호좌회전 인덱스를 지정했습니다.\n",
+ "i6\n",
+ "[8]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phase_no | \n",
+ " ring_type | \n",
+ " move_no | \n",
+ " inc_dire | \n",
+ " out_dire | \n",
+ " inc_angle | \n",
+ " out_angle | \n",
+ " inc_edge_id | \n",
+ " out_edge_id | \n",
+ " node_id | \n",
+ " turn_type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 92 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " A | \n",
+ " 6 | \n",
+ " 동 | \n",
+ " 서 | \n",
+ " 090 | \n",
+ " 270 | \n",
+ " -571542115_01 | \n",
+ " 571500535_01 | \n",
+ " i6 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 93 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " B | \n",
+ " 18 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " i6 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 94 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " A | \n",
+ " 5 | \n",
+ " 서 | \n",
+ " 북 | \n",
+ " 270 | \n",
+ " 000 | \n",
+ " 571500535_02.18 | \n",
+ " 571511538_01 | \n",
+ " i6 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 95 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " B | \n",
+ " 2 | \n",
+ " 서 | \n",
+ " 동 | \n",
+ " 270 | \n",
+ " 090 | \n",
+ " 571500535_02.18 | \n",
+ " 571542115_01 | \n",
+ " i6 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 96 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " A | \n",
+ " 7 | \n",
+ " 북 | \n",
+ " 동 | \n",
+ " 000 | \n",
+ " 090 | \n",
+ " 571511538_02.121 | \n",
+ " 571542115_01 | \n",
+ " i6 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 97 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " B | \n",
+ " 4 | \n",
+ " 북 | \n",
+ " 남 | \n",
+ " 000 | \n",
+ " 180 | \n",
+ " 571511538_02.121 | \n",
+ " 571500585_01 | \n",
+ " i6 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 98 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " A | \n",
+ " 8 | \n",
+ " 남 | \n",
+ " 북 | \n",
+ " 180 | \n",
+ " 000 | \n",
+ " 571500585_02 | \n",
+ " 571511538_01 | \n",
+ " i6 | \n",
+ " straight | \n",
+ "
\n",
+ " \n",
+ " 99 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " B | \n",
+ " 3 | \n",
+ " 남 | \n",
+ " 서 | \n",
+ " 180 | \n",
+ " 270 | \n",
+ " 571500585_02 | \n",
+ " 571500535_01 | \n",
+ " i6 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
+ "92 210 1 A 6 동 서 090 \n",
+ "93 210 1 B 18 NaN NaN NaN \n",
+ "94 210 2 A 5 서 북 270 \n",
+ "95 210 2 B 2 서 동 270 \n",
+ "96 210 3 A 7 북 동 000 \n",
+ "97 210 3 B 4 북 남 000 \n",
+ "98 210 4 A 8 남 북 180 \n",
+ "99 210 4 B 3 남 서 180 \n",
+ "\n",
+ " out_angle inc_edge_id out_edge_id node_id turn_type \n",
+ "92 270 -571542115_01 571500535_01 i6 straight \n",
+ "93 NaN NaN NaN i6 NaN \n",
+ "94 000 571500535_02.18 571511538_01 i6 left \n",
+ "95 090 571500535_02.18 571542115_01 i6 straight \n",
+ "96 090 571511538_02.121 571542115_01 i6 left \n",
+ "97 180 571511538_02.121 571500585_01 i6 straight \n",
+ "98 000 571500585_02 571511538_01 i6 straight \n",
+ "99 270 571500585_02 571500535_01 i6 left "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "self = DailyPreprocessor()\n",
+ "self.load_data() # 1. 데이터 불러오기\n",
+ "self.get_matches() # 2-1\n",
+ "self.initialize_state() # 2-2\n",
+ "self.assign_indices() # 2-3\n",
+ "\n",
+ "parent_id = self.parent_ids[4]\n",
+ "print(parent_id)\n",
+ "UPLindices = self.p2UPLindices[parent_id]\n",
+ "print(UPLindices)\n",
+ "m6 = self.match6[self.match6.node_id==parent_id].copy()\n",
+ "\n",
+ "# matching에 신호 배정\n",
+ "for i, row in self.match6.iterrows():\n",
+ " node_id = row.node_id\n",
+ " move_no = row.move_no\n",
+ " if (pd.isna(row.inc_edge_id)) or (pd.isna(row.out_edge_id)):\n",
+ " continue\n",
+ " inc_edge = self.net.getEdge(row.inc_edge_id)\n",
+ " out_edge = self.net.getEdge(row.out_edge_id)\n",
+ " state = copy.deepcopy(self.node2init[node_id])\n",
+ " for conn in inc_edge.getConnections(out_edge):\n",
+ " index = conn.getTLLinkIndex()\n",
+ " if index >= 0:\n",
+ " state[index] = 'G'\n",
+ " self.match6.at[i, 'state'] = ''.join(state)\n",
+ " if node_id in self.parent_ids:\n",
+ " UPLindices = self.p2UPLindices[node_id]\n",
+ " self.match6.at[i, 'unprotected_left'] = ''.join([state[j] for j in UPLindices])\n",
+ "display(self.match6[self.match6.node_id==parent_id])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['b', 'c']"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "L = 'abcd'\n",
+ "UPLindices = [1,2]\n",
+ "[L[i] for i in UPLindices]"
+ ]
+ }
+ ],
+ "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/Data/tables/raw_tables/0409_make_sample_table.ipynb b/Data/tables/raw_tables/0409_make_sample_table.ipynb
index 66b96609c..3368e47c6 100644
--- a/Data/tables/raw_tables/0409_make_sample_table.ipynb
+++ b/Data/tables/raw_tables/0409_make_sample_table.ipynb
@@ -604,38 +604,38 @@
" 0 | \n",
" 160 | \n",
" 57 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
" \n",
" \n",
" 1 | \n",
@@ -660,38 +660,38 @@
" 0 | \n",
" 170 | \n",
" 40 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 2 | \n",
@@ -716,38 +716,38 @@
" 0 | \n",
" 180 | \n",
" 28 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 3 | \n",
@@ -772,38 +772,38 @@
" 0 | \n",
" 190 | \n",
" 18 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 5 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 4 | \n",
@@ -1068,22 +1068,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 9 | \n",
@@ -1124,22 +1124,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 10 | \n",
@@ -1180,22 +1180,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 11 | \n",
@@ -1236,22 +1236,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
- " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 12 | \n",
@@ -1292,22 +1292,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 13 | \n",
@@ -1341,29 +1341,29 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 4 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 14 | \n",
@@ -1404,22 +1404,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 15 | \n",
@@ -1460,22 +1460,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 16 | \n",
@@ -1964,22 +1964,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 25 | \n",
@@ -2020,22 +2020,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 26 | \n",
@@ -2076,22 +2076,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 27 | \n",
@@ -2132,22 +2132,22 @@
" 4 | \n",
" 4 | \n",
" 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
- " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
"
\n",
" \n",
" 28 | \n",
@@ -2447,10 +2447,10 @@
"31 0 0 0 0 24 66 75 25 \n",
"\n",
" dura_B5 dura_B6 dura_B7 dura_B8 cycle offset yellow_A1 yellow_B1 \\\n",
- "0 0 0 0 0 160 57 5 5 \n",
- "1 0 0 0 0 170 40 5 5 \n",
- "2 0 0 0 0 180 28 5 5 \n",
- "3 0 0 0 0 190 18 5 5 \n",
+ "0 0 0 0 0 160 57 4 4 \n",
+ "1 0 0 0 0 170 40 4 4 \n",
+ "2 0 0 0 0 180 28 4 4 \n",
+ "3 0 0 0 0 190 18 4 4 \n",
"4 0 0 0 0 150 131 4 4 \n",
"5 0 0 0 0 170 153 4 4 \n",
"6 0 0 0 0 180 169 4 4 \n",
@@ -2481,10 +2481,10 @@
"31 0 0 0 0 190 143 4 4 \n",
"\n",
" yellow_A2 yellow_B2 yellow_A3 yellow_B3 yellow_A4 yellow_B4 \\\n",
- "0 5 5 5 5 5 5 \n",
- "1 5 5 5 5 5 5 \n",
- "2 5 5 5 5 5 5 \n",
- "3 5 5 5 5 5 5 \n",
+ "0 4 4 4 4 4 4 \n",
+ "1 4 4 4 4 4 4 \n",
+ "2 4 4 4 4 4 4 \n",
+ "3 4 4 4 4 4 4 \n",
"4 4 4 4 4 4 4 \n",
"5 4 4 4 4 4 4 \n",
"6 4 4 4 4 4 4 \n",
@@ -2515,10 +2515,10 @@
"31 4 4 4 4 4 4 \n",
"\n",
" yellow_A5 yellow_B5 yellow_A6 yellow_B6 yellow_A7 yellow_B7 \\\n",
- "0 5 5 5 5 5 5 \n",
- "1 5 5 5 5 5 5 \n",
- "2 5 5 5 5 5 5 \n",
- "3 5 5 5 5 5 5 \n",
+ "0 4 4 4 4 4 4 \n",
+ "1 4 4 4 4 4 4 \n",
+ "2 4 4 4 4 4 4 \n",
+ "3 4 4 4 4 4 4 \n",
"4 4 4 4 4 4 4 \n",
"5 4 4 4 4 4 4 \n",
"6 4 4 4 4 4 4 \n",
@@ -2549,22 +2549,22 @@
"31 4 4 4 4 4 4 \n",
"\n",
" yellow_A8 yellow_B8 red_A1 red_B1 red_A2 red_B2 red_A3 red_B3 \\\n",
- "0 5 5 2 2 2 2 2 2 \n",
- "1 5 5 2 2 2 2 2 2 \n",
- "2 5 5 2 2 2 2 2 2 \n",
- "3 5 5 2 2 2 2 2 2 \n",
+ "0 4 4 1 1 1 1 1 1 \n",
+ "1 4 4 1 1 1 1 1 1 \n",
+ "2 4 4 1 1 1 1 1 1 \n",
+ "3 4 4 1 1 1 1 1 1 \n",
"4 4 4 2 2 2 2 2 2 \n",
"5 4 4 2 2 2 2 2 2 \n",
"6 4 4 2 2 2 2 2 2 \n",
"7 4 4 2 2 2 2 2 2 \n",
- "8 4 4 1 1 1 1 1 1 \n",
- "9 4 4 1 1 1 1 1 1 \n",
- "10 4 4 1 1 1 1 1 1 \n",
- "11 4 4 1 1 1 1 1 1 \n",
- "12 4 4 0 0 0 0 0 0 \n",
- "13 4 4 0 0 0 0 0 0 \n",
- "14 4 4 0 0 0 0 0 0 \n",
- "15 4 4 0 0 0 0 0 0 \n",
+ "8 4 4 0 0 0 0 0 0 \n",
+ "9 4 4 0 0 0 0 0 0 \n",
+ "10 4 4 0 0 0 0 0 0 \n",
+ "11 4 4 0 0 0 0 0 0 \n",
+ "12 4 4 1 1 1 1 1 1 \n",
+ "13 4 4 1 1 1 1 1 1 \n",
+ "14 4 4 1 1 1 1 1 1 \n",
+ "15 4 4 1 1 1 1 1 1 \n",
"16 4 4 1 1 1 1 1 1 \n",
"17 4 4 1 1 1 1 1 1 \n",
"18 4 4 1 1 1 1 1 1 \n",
@@ -2573,32 +2573,32 @@
"21 5 5 1 1 1 1 1 1 \n",
"22 5 5 1 1 1 1 1 1 \n",
"23 5 5 1 1 1 1 1 1 \n",
- "24 4 4 2 2 2 2 2 2 \n",
- "25 4 4 2 2 2 2 2 2 \n",
- "26 4 4 2 2 2 2 2 2 \n",
- "27 4 4 2 2 2 2 2 2 \n",
+ "24 4 4 0 0 0 0 0 0 \n",
+ "25 4 4 0 0 0 0 0 0 \n",
+ "26 4 4 0 0 0 0 0 0 \n",
+ "27 4 4 0 0 0 0 0 0 \n",
"28 4 4 1 1 1 1 1 1 \n",
"29 4 4 1 1 1 1 1 1 \n",
"30 4 4 1 1 1 1 1 1 \n",
"31 4 4 1 1 1 1 1 1 \n",
"\n",
" red_A4 red_B4 red_A5 red_B5 red_A6 red_B6 red_A7 red_B7 red_A8 \\\n",
- "0 2 2 2 2 2 2 2 2 2 \n",
- "1 2 2 2 2 2 2 2 2 2 \n",
- "2 2 2 2 2 2 2 2 2 2 \n",
- "3 2 2 2 2 2 2 2 2 2 \n",
+ "0 1 1 1 1 1 1 1 1 1 \n",
+ "1 1 1 1 1 1 1 1 1 1 \n",
+ "2 1 1 1 1 1 1 1 1 1 \n",
+ "3 1 1 1 1 1 1 1 1 1 \n",
"4 2 2 2 2 2 2 2 2 2 \n",
"5 2 2 2 2 2 2 2 2 2 \n",
"6 2 2 2 2 2 2 2 2 2 \n",
"7 2 2 2 2 2 2 2 2 2 \n",
- "8 1 1 1 1 1 1 1 1 1 \n",
- "9 1 1 1 1 1 1 1 1 1 \n",
- "10 1 1 1 1 1 1 1 1 1 \n",
- "11 1 1 1 1 1 1 1 1 1 \n",
- "12 0 0 0 0 0 0 0 0 0 \n",
- "13 0 0 0 0 0 0 0 0 0 \n",
- "14 0 0 0 0 0 0 0 0 0 \n",
- "15 0 0 0 0 0 0 0 0 0 \n",
+ "8 0 0 0 0 0 0 0 0 0 \n",
+ "9 0 0 0 0 0 0 0 0 0 \n",
+ "10 0 0 0 0 0 0 0 0 0 \n",
+ "11 0 0 0 0 0 0 0 0 0 \n",
+ "12 1 1 1 1 1 1 1 1 1 \n",
+ "13 1 1 1 1 1 1 1 1 1 \n",
+ "14 1 1 1 1 1 1 1 1 1 \n",
+ "15 1 1 1 1 1 1 1 1 1 \n",
"16 1 1 1 1 1 1 1 1 1 \n",
"17 1 1 1 1 1 1 1 1 1 \n",
"18 1 1 1 1 1 1 1 1 1 \n",
@@ -2607,32 +2607,32 @@
"21 1 1 1 1 1 1 1 1 1 \n",
"22 1 1 1 1 1 1 1 1 1 \n",
"23 1 1 1 1 1 1 1 1 1 \n",
- "24 2 2 2 2 2 2 2 2 2 \n",
- "25 2 2 2 2 2 2 2 2 2 \n",
- "26 2 2 2 2 2 2 2 2 2 \n",
- "27 2 2 2 2 2 2 2 2 2 \n",
+ "24 0 0 0 0 0 0 0 0 0 \n",
+ "25 0 0 0 0 0 0 0 0 0 \n",
+ "26 0 0 0 0 0 0 0 0 0 \n",
+ "27 0 0 0 0 0 0 0 0 0 \n",
"28 1 1 1 1 1 1 1 1 1 \n",
"29 1 1 1 1 1 1 1 1 1 \n",
"30 1 1 1 1 1 1 1 1 1 \n",
"31 1 1 1 1 1 1 1 1 1 \n",
"\n",
" red_B8 \n",
- "0 2 \n",
- "1 2 \n",
- "2 2 \n",
- "3 2 \n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "3 1 \n",
"4 2 \n",
"5 2 \n",
"6 2 \n",
"7 2 \n",
- "8 1 \n",
- "9 1 \n",
- "10 1 \n",
- "11 1 \n",
- "12 0 \n",
- "13 0 \n",
- "14 0 \n",
- "15 0 \n",
+ "8 0 \n",
+ "9 0 \n",
+ "10 0 \n",
+ "11 0 \n",
+ "12 1 \n",
+ "13 1 \n",
+ "14 1 \n",
+ "15 1 \n",
"16 1 \n",
"17 1 \n",
"18 1 \n",
@@ -2641,10 +2641,10 @@
"21 1 \n",
"22 1 \n",
"23 1 \n",
- "24 2 \n",
- "25 2 \n",
- "26 2 \n",
- "27 2 \n",
+ "24 0 \n",
+ "25 0 \n",
+ "26 0 \n",
+ "27 0 \n",
"28 1 \n",
"29 1 \n",
"30 1 \n",
@@ -2783,26 +2783,26 @@
"
\n",
" \n",
" 1 | \n",
- " 178 | \n",
+ " 202 | \n",
" 1704380540 | \n",
- " 38 | \n",
" 39 | \n",
- " 40 | \n",
- " 23 | \n",
+ " 101 | \n",
+ " 0 | \n",
+ " 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 38 | \n",
" 39 | \n",
- " 40 | \n",
- " 23 | \n",
+ " 101 | \n",
+ " 0 | \n",
+ " 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
- " 50 | \n",
+ " 103 | \n",
"
\n",
" \n",
" 2 | \n",
@@ -2829,49 +2829,49 @@
"
\n",
" \n",
" 3 | \n",
- " 202 | \n",
- " 1704380540 | \n",
+ " 178 | \n",
+ " 1704380541 | \n",
+ " 38 | \n",
" 39 | \n",
- " 101 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 40 | \n",
+ " 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
+ " 38 | \n",
" 39 | \n",
- " 101 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 40 | \n",
+ " 23 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 140 | \n",
- " 103 | \n",
+ " 50 | \n",
"
\n",
" \n",
" 4 | \n",
- " 177 | \n",
- " 1704380549 | \n",
- " 36 | \n",
- " 20 | \n",
- " 68 | \n",
- " 26 | \n",
+ " 210 | \n",
+ " 1704380550 | \n",
+ " 43 | \n",
+ " 29 | \n",
+ " 56 | \n",
+ " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 36 | \n",
- " 20 | \n",
- " 68 | \n",
- " 26 | \n",
+ " 24 | \n",
+ " 48 | \n",
+ " 56 | \n",
+ " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
- " 35 | \n",
+ " 115 | \n",
"
\n",
" \n",
" 5 | \n",
@@ -2921,26 +2921,26 @@
"
\n",
" \n",
" 7 | \n",
- " 210 | \n",
- " 1704380550 | \n",
- " 43 | \n",
+ " 175 | \n",
+ " 1704380560 | \n",
+ " 37 | \n",
+ " 39 | \n",
+ " 55 | \n",
" 29 | \n",
- " 56 | \n",
- " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 24 | \n",
- " 48 | \n",
- " 56 | \n",
- " 22 | \n",
+ " 37 | \n",
+ " 39 | \n",
+ " 25 | \n",
+ " 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 150 | \n",
- " 115 | \n",
+ " 160 | \n",
+ " 57 | \n",
"
\n",
" \n",
" 8 | \n",
@@ -2967,31 +2967,31 @@
"
\n",
" \n",
" 9 | \n",
- " 175 | \n",
- " 1704380670 | \n",
- " 37 | \n",
- " 39 | \n",
- " 55 | \n",
- " 29 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 201 | \n",
+ " 1704380680 | \n",
+ " 24 | \n",
+ " 24 | \n",
+ " 17 | \n",
+ " 58 | \n",
+ " 17 | \n",
" 0 | \n",
" 0 | \n",
- " 37 | \n",
- " 39 | \n",
- " 25 | \n",
- " 59 | \n",
" 0 | \n",
+ " 24 | \n",
+ " 24 | \n",
+ " 17 | \n",
+ " 58 | \n",
+ " 17 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 160 | \n",
- " 57 | \n",
+ " 140 | \n",
+ " 133 | \n",
"
\n",
" \n",
" 10 | \n",
" 178 | \n",
- " 1704380679 | \n",
+ " 1704380680 | \n",
" 38 | \n",
" 39 | \n",
" 40 | \n",
@@ -3036,95 +3036,95 @@
"
\n",
" \n",
" 12 | \n",
- " 201 | \n",
- " 1704380680 | \n",
- " 24 | \n",
- " 24 | \n",
- " 17 | \n",
- " 58 | \n",
- " 17 | \n",
+ " 176 | \n",
+ " 1704380700 | \n",
+ " 37 | \n",
+ " 73 | \n",
+ " 40 | \n",
+ " 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 24 | \n",
- " 24 | \n",
- " 17 | \n",
- " 58 | \n",
- " 17 | \n",
" 0 | \n",
+ " 37 | \n",
+ " 73 | \n",
+ " 40 | \n",
" 0 | \n",
" 0 | \n",
- " 140 | \n",
- " 133 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 150 | \n",
+ " 131 | \n",
"
\n",
" \n",
" 13 | \n",
- " 177 | \n",
+ " 210 | \n",
" 1704380700 | \n",
- " 36 | \n",
- " 20 | \n",
- " 68 | \n",
- " 26 | \n",
+ " 43 | \n",
+ " 29 | \n",
+ " 56 | \n",
+ " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 36 | \n",
- " 20 | \n",
- " 68 | \n",
- " 26 | \n",
+ " 24 | \n",
+ " 48 | \n",
+ " 56 | \n",
+ " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
- " 35 | \n",
+ " 115 | \n",
"
\n",
" \n",
" 14 | \n",
- " 176 | \n",
+ " 177 | \n",
" 1704380700 | \n",
- " 37 | \n",
- " 73 | \n",
- " 40 | \n",
- " 0 | \n",
- " 0 | \n",
+ " 36 | \n",
+ " 20 | \n",
+ " 68 | \n",
+ " 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 37 | \n",
- " 73 | \n",
- " 40 | \n",
" 0 | \n",
+ " 36 | \n",
+ " 20 | \n",
+ " 68 | \n",
+ " 26 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 150 | \n",
- " 131 | \n",
+ " 35 | \n",
"
\n",
" \n",
" 15 | \n",
- " 210 | \n",
- " 1704380700 | \n",
- " 43 | \n",
+ " 175 | \n",
+ " 1704380720 | \n",
+ " 37 | \n",
+ " 39 | \n",
+ " 55 | \n",
" 29 | \n",
- " 56 | \n",
- " 22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 24 | \n",
- " 48 | \n",
- " 56 | \n",
- " 22 | \n",
+ " 37 | \n",
+ " 39 | \n",
+ " 25 | \n",
+ " 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
- " 150 | \n",
- " 115 | \n",
+ " 160 | \n",
+ " 57 | \n",
"
\n",
" \n",
" 16 | \n",
@@ -3151,29 +3151,6 @@
"
\n",
" \n",
" 17 | \n",
- " 201 | \n",
- " 1704380820 | \n",
- " 24 | \n",
- " 24 | \n",
- " 17 | \n",
- " 58 | \n",
- " 17 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 24 | \n",
- " 24 | \n",
- " 17 | \n",
- " 58 | \n",
- " 17 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 140 | \n",
- " 133 | \n",
- "
\n",
- " \n",
- " 18 | \n",
" 178 | \n",
" 1704380820 | \n",
" 38 | \n",
@@ -3196,7 +3173,7 @@
" 50 | \n",
"
\n",
" \n",
- " 19 | \n",
+ " 18 | \n",
" 202 | \n",
" 1704380820 | \n",
" 39 | \n",
@@ -3218,6 +3195,29 @@
" 140 | \n",
" 103 | \n",
"
\n",
+ " \n",
+ " 19 | \n",
+ " 201 | \n",
+ " 1704380820 | \n",
+ " 24 | \n",
+ " 24 | \n",
+ " 17 | \n",
+ " 58 | \n",
+ " 17 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 24 | \n",
+ " 24 | \n",
+ " 17 | \n",
+ " 58 | \n",
+ " 17 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 140 | \n",
+ " 133 | \n",
+ "
\n",
" \n",
"\n",
""
@@ -3225,69 +3225,69 @@
"text/plain": [
" inter_no end_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 \\\n",
"0 206 1704380520 33 35 26 26 0 0 \n",
- "1 178 1704380540 38 39 40 23 0 0 \n",
+ "1 202 1704380540 39 101 0 0 0 0 \n",
"2 201 1704380540 24 24 17 58 17 0 \n",
- "3 202 1704380540 39 101 0 0 0 0 \n",
- "4 177 1704380549 36 20 68 26 0 0 \n",
+ "3 178 1704380541 38 39 40 23 0 0 \n",
+ "4 210 1704380550 43 29 56 22 0 0 \n",
"5 176 1704380550 37 73 40 0 0 0 \n",
"6 177 1704380550 36 20 68 26 0 0 \n",
- "7 210 1704380550 43 29 56 22 0 0 \n",
+ "7 175 1704380560 37 39 55 29 0 0 \n",
"8 206 1704380640 33 35 26 26 0 0 \n",
- "9 175 1704380670 37 39 55 29 0 0 \n",
- "10 178 1704380679 38 39 40 23 0 0 \n",
+ "9 201 1704380680 24 24 17 58 17 0 \n",
+ "10 178 1704380680 38 39 40 23 0 0 \n",
"11 202 1704380680 39 101 0 0 0 0 \n",
- "12 201 1704380680 24 24 17 58 17 0 \n",
- "13 177 1704380700 36 20 68 26 0 0 \n",
- "14 176 1704380700 37 73 40 0 0 0 \n",
- "15 210 1704380700 43 29 56 22 0 0 \n",
+ "12 176 1704380700 37 73 40 0 0 0 \n",
+ "13 210 1704380700 43 29 56 22 0 0 \n",
+ "14 177 1704380700 36 20 68 26 0 0 \n",
+ "15 175 1704380720 37 39 55 29 0 0 \n",
"16 206 1704380760 33 35 26 26 0 0 \n",
- "17 201 1704380820 24 24 17 58 17 0 \n",
- "18 178 1704380820 38 39 40 23 0 0 \n",
- "19 202 1704380820 39 101 0 0 0 0 \n",
+ "17 178 1704380820 38 39 40 23 0 0 \n",
+ "18 202 1704380820 39 101 0 0 0 0 \n",
+ "19 201 1704380820 24 24 17 58 17 0 \n",
"\n",
" dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 dura_B6 dura_B7 \\\n",
"0 0 0 33 35 26 26 0 0 0 \n",
- "1 0 0 38 39 40 23 0 0 0 \n",
+ "1 0 0 39 101 0 0 0 0 0 \n",
"2 0 0 24 24 17 58 17 0 0 \n",
- "3 0 0 39 101 0 0 0 0 0 \n",
- "4 0 0 36 20 68 26 0 0 0 \n",
+ "3 0 0 38 39 40 23 0 0 0 \n",
+ "4 0 0 24 48 56 22 0 0 0 \n",
"5 0 0 37 73 40 0 0 0 0 \n",
"6 0 0 36 20 68 26 0 0 0 \n",
- "7 0 0 24 48 56 22 0 0 0 \n",
+ "7 0 0 37 39 25 59 0 0 0 \n",
"8 0 0 33 35 26 26 0 0 0 \n",
- "9 0 0 37 39 25 59 0 0 0 \n",
+ "9 0 0 24 24 17 58 17 0 0 \n",
"10 0 0 38 39 40 23 0 0 0 \n",
"11 0 0 39 101 0 0 0 0 0 \n",
- "12 0 0 24 24 17 58 17 0 0 \n",
- "13 0 0 36 20 68 26 0 0 0 \n",
- "14 0 0 37 73 40 0 0 0 0 \n",
- "15 0 0 24 48 56 22 0 0 0 \n",
+ "12 0 0 37 73 40 0 0 0 0 \n",
+ "13 0 0 24 48 56 22 0 0 0 \n",
+ "14 0 0 36 20 68 26 0 0 0 \n",
+ "15 0 0 37 39 25 59 0 0 0 \n",
"16 0 0 33 35 26 26 0 0 0 \n",
- "17 0 0 24 24 17 58 17 0 0 \n",
- "18 0 0 38 39 40 23 0 0 0 \n",
- "19 0 0 39 101 0 0 0 0 0 \n",
+ "17 0 0 38 39 40 23 0 0 0 \n",
+ "18 0 0 39 101 0 0 0 0 0 \n",
+ "19 0 0 24 24 17 58 17 0 0 \n",
"\n",
" dura_B8 cycle offset \n",
"0 0 120 10 \n",
- "1 0 140 50 \n",
+ "1 0 140 103 \n",
"2 0 140 133 \n",
- "3 0 140 103 \n",
- "4 0 150 35 \n",
+ "3 0 140 50 \n",
+ "4 0 150 115 \n",
"5 0 150 131 \n",
"6 0 150 35 \n",
- "7 0 150 115 \n",
+ "7 0 160 57 \n",
"8 0 120 10 \n",
- "9 0 160 57 \n",
+ "9 0 140 133 \n",
"10 0 140 50 \n",
"11 0 140 103 \n",
- "12 0 140 133 \n",
- "13 0 150 35 \n",
- "14 0 150 131 \n",
- "15 0 150 115 \n",
+ "12 0 150 131 \n",
+ "13 0 150 115 \n",
+ "14 0 150 35 \n",
+ "15 0 160 57 \n",
"16 0 120 10 \n",
- "17 0 140 133 \n",
- "18 0 140 50 \n",
- "19 0 140 103 "
+ "17 0 140 50 \n",
+ "18 0 140 103 \n",
+ "19 0 140 133 "
]
},
"execution_count": 7,
@@ -4052,13 +4052,13 @@
"turn_type = turn_type[['node_id', 'inc_edge_id', 'out_edge_id', 'turn_type']]\n",
"additional_turn_type1 = pd.DataFrame({'node_id':['i6'], 'inc_edge_id':['-571542115_01'], 'out_edge_id':['571500585_01'], 'turn_type':['left']})\n",
"additional_turn_type2 = pd.DataFrame({'node_id':['i7'], 'inc_edge_id':['571542073_01'], 'out_edge_id':['571542071_01'], 'turn_type':['left']})\n",
- "turn_type = pd.concat([turn_type, additional_turn_type1, additional_turn_type1])#.sort_values(by='node_id')\n",
+ "turn_type = pd.concat([turn_type, additional_turn_type1, additional_turn_type2])#.sort_values(by='node_id')\n",
"turn_type.to_csv('../turn_type.csv', index=0)"
]
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -4082,139 +4082,67 @@
" \n",
" \n",
" | \n",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
+ " node_id | \n",
" inc_edge_id | \n",
" out_edge_id | \n",
- " node_id | \n",
" turn_type | \n",
"
\n",
" \n",
" \n",
" \n",
- " 92 | \n",
- " 210 | \n",
- " 1 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
+ " 39 | \n",
+ " i6 | \n",
" -571542115_01 | \n",
" 571500535_01 | \n",
- " i6 | \n",
" straight | \n",
"
\n",
" \n",
- " 93 | \n",
- " 210 | \n",
- " 1 | \n",
- " B | \n",
- " 18 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
+ " 40 | \n",
" i6 | \n",
- " NaN | \n",
- "
\n",
- " \n",
- " 94 | \n",
- " 210 | \n",
- " 2 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
" 571500535_02.18 | \n",
" 571511538_01 | \n",
- " i6 | \n",
" left | \n",
"
\n",
" \n",
- " 95 | \n",
- " 210 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
+ " 41 | \n",
+ " i6 | \n",
" 571500535_02.18 | \n",
" 571542115_01 | \n",
- " i6 | \n",
" straight | \n",
"
\n",
" \n",
- " 96 | \n",
- " 210 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
+ " 42 | \n",
+ " i6 | \n",
" 571511538_02.121 | \n",
" 571542115_01 | \n",
- " i6 | \n",
" left | \n",
"
\n",
" \n",
- " 97 | \n",
- " 210 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
+ " 43 | \n",
+ " i6 | \n",
" 571511538_02.121 | \n",
" 571500585_01 | \n",
- " i6 | \n",
" straight | \n",
"
\n",
" \n",
- " 98 | \n",
- " 210 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
+ " 44 | \n",
+ " i6 | \n",
" 571500585_02 | \n",
" 571511538_01 | \n",
- " i6 | \n",
" straight | \n",
"
\n",
" \n",
- " 99 | \n",
- " 210 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
+ " 45 | \n",
+ " i6 | \n",
" 571500585_02 | \n",
" 571500535_01 | \n",
+ " left | \n",
+ "
\n",
+ " \n",
+ " 46 | \n",
" i6 | \n",
+ " -571542115_01 | \n",
+ " 571500585_01 | \n",
" left | \n",
"
\n",
" \n",
@@ -4222,34 +4150,24 @@
""
],
"text/plain": [
- " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n",
- "92 210 1 A 6 동 서 090 \n",
- "93 210 1 B 18 NaN NaN NaN \n",
- "94 210 2 A 5 서 북 270 \n",
- "95 210 2 B 2 서 동 270 \n",
- "96 210 3 A 7 북 동 000 \n",
- "97 210 3 B 4 북 남 000 \n",
- "98 210 4 A 8 남 북 180 \n",
- "99 210 4 B 3 남 서 180 \n",
- "\n",
- " out_angle inc_edge_id out_edge_id node_id turn_type \n",
- "92 270 -571542115_01 571500535_01 i6 straight \n",
- "93 NaN NaN NaN i6 NaN \n",
- "94 000 571500535_02.18 571511538_01 i6 left \n",
- "95 090 571500535_02.18 571542115_01 i6 straight \n",
- "96 090 571511538_02.121 571542115_01 i6 left \n",
- "97 180 571511538_02.121 571500585_01 i6 straight \n",
- "98 000 571500585_02 571511538_01 i6 straight \n",
- "99 270 571500585_02 571500535_01 i6 left "
+ " node_id inc_edge_id out_edge_id turn_type\n",
+ "39 i6 -571542115_01 571500535_01 straight\n",
+ "40 i6 571500535_02.18 571511538_01 left\n",
+ "41 i6 571500535_02.18 571542115_01 straight\n",
+ "42 i6 571511538_02.121 571542115_01 left\n",
+ "43 i6 571511538_02.121 571500585_01 straight\n",
+ "44 i6 571500585_02 571511538_01 straight\n",
+ "45 i6 571500585_02 571500535_01 left\n",
+ "46 i6 -571542115_01 571500585_01 left"
]
},
- "execution_count": 21,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "self.match6[self.match6.node_id=='i6']"
+ "self.turn_type[self.turn_type.node_id=='i6']"
]
}
],
diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc
index 007084d1c..66ec912d0 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 933cbd6ed..63c99bd12 100644
--- a/Scripts/preprocess_daily.py
+++ b/Scripts/preprocess_daily.py
@@ -733,6 +733,7 @@ class DailyPreprocessor():
# json 파일로 저장
with open(os.path.join(self.path_intermediates, 'node2init.json'), 'w') as file:
json.dump(self.node2init, file)
+ print('2-2. 초기화 신호가 지정되었습니다. (우회전 : g)')
# 2-3 유턴 인덱스 / 비보호좌회전 인덱스 지정
def assign_indices(self):