{ "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", "sys.path.append('../../Scripts')\n", "from preprocess_daily import DailyPreprocessor\n", "from generate_signals import SignalGenerator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "비보호좌회전, 신호우회전, 유턴\n", "\n", "줄임말 목록\n", "- `i` : 교차로번호, `inter_no`\n", "- `f` : 진입, from, `inc_edge_id`\n", "- `t` : 진출, to, `out_edge_id`\n", "- `vec` : 방향벡터, unit vector (`np.array([0.6, 0.8])`)\n", "- `dire` : 방위, direction (동, 서, 남, 북, 북동, 북서, 남동, 남서)\n", "- `rvec` : 정방향 방향벡터, unit vector to the right direction (`np.array([0,1])`)\n", "\n", "필요한 객체들 목록\n", "\n", "- `i2dire2rvec` : `inter_no` $\\mapsto$ `dire2rvec`\n", " - `dire2rvec` : `dire` $\\mapsto$ `rvec`\n", "- `i2f` : `inter_no` $\\mapsto$ `f_edges`\n", "- `i2t` : `inter_no` $\\mapsto$ `t_edges`\n", "- `i2f2dire` : `inter_no` $\\mapsto$ `f21dire`\n", " - `f2dire` : `from_edge` $\\mapsto$ `dire`\n", "- `i2t2dire` : `inter_no` $\\mapsto$ `t21dire`\n", " - `t2dire` : `to_edge` $\\mapsto$ `dire`" ] }, { "cell_type": "code", "execution_count": 2, "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", "2. 중간산출물을 생성합니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", "2-2. 비보호우회전(g)을 배정했습니다.\n", "2-3. 직진 및 좌회전(G)을 배정했습니다.\n", "2-2. node2num_cycles.json를 저장했습니다.\n", "3. 이슈사항을 저장합니다.\n" ] } ], "source": [ "self = DailyPreprocessor()\n", "self.main()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angle
01751A8179179
11751B4001001
21752A7001001
31752B3179179
41753A6090090
\n", "
" ], "text/plain": [ " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle out_angle\n", "0 175 1 A 8 남 북 179 179\n", "1 175 1 B 4 북 남 001 001\n", "2 175 2 A 7 북 동 001 001\n", "3 175 2 B 3 남 서 179 179\n", "4 175 3 A 6 동 서 090 090" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_id
01751A8179179-571542797_02571542797_02i0
11751B4001001-571500487_01571500487_01i0
21752A7001001-571500487_01571500487_01i0
31752B3179179-571542797_02571542797_02i0
41753A6090090571545870_02571545870_01i0
\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", " out_angle inc_edge_id out_edge_id node_id \n", "0 179 -571542797_02 571542797_02 i0 \n", "1 001 -571500487_01 571500487_01 i0 \n", "2 001 -571500487_01 571500487_01 i0 \n", "3 179 -571542797_02 571542797_02 i0 \n", "4 090 571545870_02 571545870_01 i0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(self.match4.head())\n", "display(self.match5.head())" ] }, { "cell_type": "code", "execution_count": 4, "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", "2-1. 매칭 테이블들을 생성했습니다.\n" ] } ], "source": [ "self.load_data()\n", "self.get_matches()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_id
01751A8179179-571542797_02571542797_02i0
11751B4001001-571500487_01571500487_01i0
21752A7001001-571500487_01571500487_01i0
31752B3179179-571542797_02571542797_02i0
41753A6090090571545870_02571545870_01i0
....................................
32102B2270270NaNNaNu60
42103A7000000NaNNaNu60
52103B4000000NaNNaNu60
62104A8180180NaNNaNu60
72104B3180180NaNNaNu60
\n", "

116 rows × 11 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", "3 210 2 B 2 서 동 270 \n", "4 210 3 A 7 북 동 000 \n", "5 210 3 B 4 북 남 000 \n", "6 210 4 A 8 남 북 180 \n", "7 210 4 B 3 남 서 180 \n", "\n", " out_angle inc_edge_id out_edge_id node_id \n", "0 179 -571542797_02 571542797_02 i0 \n", "1 001 -571500487_01 571500487_01 i0 \n", "2 001 -571500487_01 571500487_01 i0 \n", "3 179 -571542797_02 571542797_02 i0 \n", "4 090 571545870_02 571545870_01 i0 \n", ".. ... ... ... ... \n", "3 270 NaN NaN u60 \n", "4 000 NaN NaN u60 \n", "5 000 NaN NaN u60 \n", "6 180 NaN NaN u60 \n", "7 180 NaN NaN u60 \n", "\n", "[116 rows x 11 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.match6" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.parent_ids" ] } ], "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 }