{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "\n", "import sys, copy\n", "from datetime import datetime\n", "sys.path.append('../../Scripts')\n", "\n", "from preprocess_daily import DailyPreprocessor\n", "\n", "from generate_signals import SignalGenerator" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "self = DailyPreprocessor()" ] }, { "cell_type": "code", "execution_count": 3, "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" ] } ], "source": [ "self.load_data()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:13<00:00, 1252.17it/s]\n" ] } ], "source": [ "# 2-1-1~7\n", "self.make_match1()\n", "self.make_match2()\n", "self.make_match3()\n", "self.make_match4()\n", "self.make_match5()\n", "self.make_match6()\n", "self.make_matching()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['북', '북동', '동', '남동', '남', '남서', '서', '북서']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.directions" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'북': array([6.123234e-17, 1.000000e+00]),\n", " '북동': array([0.70710678, 0.70710678]),\n", " '동': array([1., 0.]),\n", " '남동': array([ 0.70710678, -0.70710678]),\n", " '남': array([ 6.123234e-17, -1.000000e+00]),\n", " '남서': array([-0.70710678, -0.70710678]),\n", " '서': array([-1.0000000e+00, -1.2246468e-16]),\n", " '북서': array([-0.70710678, 0.70710678])}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "# dictionary that maps dire(북) to dir(np.array([0,1]))\n", "self.dire2dir = dict()\n", "theta = np.pi/2\n", "for dire in self.directions:\n", " self.dire2dir[dire] = np.array([np.cos(theta), np.sin(theta)])\n", " theta -= np.pi/4\n", "self.dire2dir" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(10315.19, 11460.86),\n", " (10314.85, 11439.86),\n", " (10314.54, 11439.86),\n", " (10314.9, 11460.86)]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "node_id = 'i5'\n", "node = self.net.getNode(node_id)\n", "inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n", "out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n", "inc_edge = inc_edges[0]\n", "loc_inc_edge = inc_edge.getShape()[-1]\n", "node.getShape()" ] }, { "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": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-2. 비보호우회전(g)을 배정했습니다.\n" ] } ], "source": [ "self.initialize_state()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "c30\n", "571542116_01\n", "571542116_02.96\n", "i0\n", "-571500487_01\n", "-571542797_02\n", "571510153_02\n", "571545870_02\n", "i1\n", "-571542810_01\n", "571542797_02.99\n", "571543469_02\n", "i2\n", "-571542809_01\n", "571542107_02\n", "571542811_02\n", "i3\n", "-571500475_01\n", "571540303_02.21\n", "571540304_02\n", "571556450_02\n", "i6\n", "-571542115_01\n", "571500535_02.18\n", "571500585_02\n", "571511538_02.121\n", "i7\n", "-571511538_02\n", "571542071_02\n", "571542073_01\n", "i8\n", "-571500569_01\n", "571500583_01\n", "571500617_02\n", "571500618_02\n", "i9\n", "571510152_01\n", "571510152_02\n", "u00\n", "571500487_01\n", "571500487_02\n", "u20\n", "571542810_01.51\n", "571542811_01\n", "u30\n", "571556450_01\n", "571556452_01\n", "u31\n", "571500475_01\n", "571500475_02\n", "u32\n", "571540303_01\n", "571540303_02\n", "u60\n", "571500535_01\n", "571500535_02\n" ] } ], "source": [ "for node_id in self.node_ids:\n", " print(node_id)\n", " node = self.net.getNode(node_id)\n", " inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n", " out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n", " inc_edge_ids = [edge.getID() for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edge ids\n", " out_edge_ids = [edge.getID() for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edge ids\n", " # print(node)\n", " for inc_edge_id in inc_edge_ids:\n", " print(inc_edge_id)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | inter_no | \n", "move_no | \n", "inc_dir | \n", "out_dir | \n", "inc_edge | \n", "out_edge | \n", "node_id | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "175 | \n", "1 | \n", "동 | \n", "남 | \n", "571545870_02 | \n", "571542797_02 | \n", "i0 | \n", "
1 | \n", "175 | \n", "2 | \n", "서 | \n", "동 | \n", "571510153_02 | \n", "571545870_01 | \n", "i0 | \n", "
2 | \n", "175 | \n", "3 | \n", "남 | \n", "서 | \n", "-571542797_02 | \n", "571510153_01 | \n", "i0 | \n", "
3 | \n", "175 | \n", "4 | \n", "북 | \n", "남 | \n", "-571500487_01 | \n", "571542797_02 | \n", "i0 | \n", "
4 | \n", "175 | \n", "5 | \n", "서 | \n", "북 | \n", "571510153_02 | \n", "571500487_01 | \n", "i0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
71 | \n", "210 | \n", "21 | \n", "북 | \n", "서 | \n", "571511538_02.121 | \n", "571500535_01 | \n", "i6 | \n", "
72 | \n", "210 | \n", "21 | \n", "서 | \n", "남 | \n", "571500535_02.18 | \n", "571500585_01 | \n", "i6 | \n", "
73 | \n", "210 | \n", "21 | \n", "남 | \n", "동 | \n", "571500585_02 | \n", "571542115_01 | \n", "i6 | \n", "
74 | \n", "210 | \n", "21 | \n", "동 | \n", "북 | \n", "-571542115_01 | \n", "571511538_01 | \n", "i6 | \n", "
75 | \n", "210 | \n", "5 | \n", "서 | \n", "북 | \n", "571500535_02 | \n", "-571500535_02 | \n", "u60 | \n", "
76 rows × 7 columns
\n", "\n", " | inter_no | \n", "phase_no | \n", "ring_type | \n", "move_no | \n", "inc_dir | \n", "out_dir | \n", "inc_angle | \n", "out_angle | \n", "inc_edge | \n", "out_edge | \n", "node_id | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "175 | \n", "1 | \n", "A | \n", "8 | \n", "남 | \n", "북 | \n", "179 | \n", "004 | \n", "-571542797_02 | \n", "571500487_01 | \n", "i0 | \n", "
1 | \n", "175 | \n", "1 | \n", "B | \n", "4 | \n", "북 | \n", "남 | \n", "003 | \n", "176 | \n", "-571500487_01 | \n", "571542797_02 | \n", "i0 | \n", "
2 | \n", "175 | \n", "2 | \n", "A | \n", "7 | \n", "북 | \n", "동 | \n", "001 | \n", "095 | \n", "-571500487_01 | \n", "571545870_01 | \n", "i0 | \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", "
4 | \n", "175 | \n", "3 | \n", "A | \n", "6 | \n", "동 | \n", "서 | \n", "090 | \n", "270 | \n", "571545870_02 | \n", "571510153_01 | \n", "i0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
3 | \n", "210 | \n", "2 | \n", "B | \n", "2 | \n", "서 | \n", "동 | \n", "270 | \n", "090 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
4 | \n", "210 | \n", "3 | \n", "A | \n", "7 | \n", "북 | \n", "동 | \n", "359 | \n", "090 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
5 | \n", "210 | \n", "3 | \n", "B | \n", "4 | \n", "북 | \n", "남 | \n", "000 | \n", "180 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
6 | \n", "210 | \n", "4 | \n", "A | \n", "8 | \n", "남 | \n", "북 | \n", "180 | \n", "000 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
7 | \n", "210 | \n", "4 | \n", "B | \n", "3 | \n", "남 | \n", "서 | \n", "180 | \n", "270 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
116 rows × 11 columns
\n", "\n", " | inter_no | \n", "phase_no | \n", "ring_type | \n", "move_no | \n", "inc_dir | \n", "out_dir | \n", "inc_angle | \n", "out_angle | \n", "inc_edge | \n", "out_edge | \n", "node_id | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "175 | \n", "1 | \n", "A | \n", "8 | \n", "남 | \n", "북 | \n", "179 | \n", "004 | \n", "-571542797_02 | \n", "571500487_01 | \n", "i0 | \n", "
1 | \n", "175 | \n", "1 | \n", "B | \n", "4 | \n", "북 | \n", "남 | \n", "003 | \n", "176 | \n", "-571500487_01 | \n", "571542797_02 | \n", "i0 | \n", "
2 | \n", "175 | \n", "2 | \n", "A | \n", "7 | \n", "북 | \n", "동 | \n", "001 | \n", "095 | \n", "-571500487_01 | \n", "571545870_01 | \n", "i0 | \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", "
4 | \n", "175 | \n", "3 | \n", "A | \n", "6 | \n", "동 | \n", "서 | \n", "090 | \n", "270 | \n", "571545870_02 | \n", "571510153_01 | \n", "i0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
3 | \n", "210 | \n", "2 | \n", "B | \n", "2 | \n", "서 | \n", "동 | \n", "270 | \n", "090 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
4 | \n", "210 | \n", "3 | \n", "A | \n", "7 | \n", "북 | \n", "동 | \n", "359 | \n", "090 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
5 | \n", "210 | \n", "3 | \n", "B | \n", "4 | \n", "북 | \n", "남 | \n", "000 | \n", "180 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
6 | \n", "210 | \n", "4 | \n", "A | \n", "8 | \n", "남 | \n", "북 | \n", "180 | \n", "000 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
7 | \n", "210 | \n", "4 | \n", "B | \n", "3 | \n", "남 | \n", "서 | \n", "180 | \n", "270 | \n", "NaN | \n", "NaN | \n", "u60 | \n", "
116 rows × 11 columns
\n", "\n", " | inter_no | \n", "node_id | \n", "phase_no | \n", "ring_type | \n", "move_no | \n", "state | \n", "
---|---|---|---|---|---|---|
0 | \n", "175 | \n", "i0 | \n", "1 | \n", "A | \n", "8 | \n", "grrrgrrrgGGGGrgrr | \n", "
1 | \n", "175 | \n", "i0 | \n", "1 | \n", "B | \n", "4 | \n", "gGGrgrrrgrrrrrgrr | \n", "
2 | \n", "175 | \n", "i0 | \n", "2 | \n", "A | \n", "7 | \n", "grrGgrrrgrrrrrgrr | \n", "
3 | \n", "175 | \n", "i0 | \n", "2 | \n", "B | \n", "3 | \n", "grrrgrrrgrrrrGgrr | \n", "
4 | \n", "175 | \n", "i0 | \n", "3 | \n", "A | \n", "6 | \n", "grrrgGGrgrrrrrgrr | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
111 | \n", "210 | \n", "u60 | \n", "2 | \n", "B | \n", "2 | \n", "ggggggggr | \n", "
112 | \n", "210 | \n", "u60 | \n", "3 | \n", "A | \n", "7 | \n", "ggggggggr | \n", "
113 | \n", "210 | \n", "u60 | \n", "3 | \n", "B | \n", "4 | \n", "ggggggggr | \n", "
114 | \n", "210 | \n", "u60 | \n", "4 | \n", "A | \n", "8 | \n", "ggggggggr | \n", "
115 | \n", "210 | \n", "u60 | \n", "4 | \n", "B | \n", "3 | \n", "ggggggggr | \n", "
116 rows × 6 columns
\n", "\n", " | inter_no | \n", "node_id | \n", "phase_no | \n", "ring_type | \n", "move_no | \n", "state | \n", "
---|---|---|---|---|---|---|
0 | \n", "175 | \n", "i0 | \n", "1 | \n", "A | \n", "8 | \n", "grrrgrrrgGGGGrgrr | \n", "
1 | \n", "175 | \n", "i0 | \n", "1 | \n", "B | \n", "4 | \n", "gGGrgrrrgrrrrrgrr | \n", "
2 | \n", "175 | \n", "i0 | \n", "2 | \n", "A | \n", "7 | \n", "grrGgrrrgrrrrrgrr | \n", "
3 | \n", "175 | \n", "i0 | \n", "2 | \n", "B | \n", "3 | \n", "grrrgrrrgrrrrGgrr | \n", "
4 | \n", "175 | \n", "i0 | \n", "3 | \n", "A | \n", "6 | \n", "grrrgGGrgrrrrrgrr | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
111 | \n", "210 | \n", "u60 | \n", "2 | \n", "B | \n", "2 | \n", "ggggggggr | \n", "
112 | \n", "210 | \n", "u60 | \n", "3 | \n", "A | \n", "7 | \n", "ggggggggr | \n", "
113 | \n", "210 | \n", "u60 | \n", "3 | \n", "B | \n", "4 | \n", "ggggggggr | \n", "
114 | \n", "210 | \n", "u60 | \n", "4 | \n", "A | \n", "8 | \n", "ggggggggr | \n", "
115 | \n", "210 | \n", "u60 | \n", "4 | \n", "B | \n", "3 | \n", "ggggggggr | \n", "
116 rows × 6 columns
\n", "