From b5d2da1f068498198c0465a5489e278f97213722 Mon Sep 17 00:00:00 2001 From: govin08 Date: Fri, 12 Apr 2024 08:33:02 +0900 Subject: [PATCH] make differences between the name inc/out_edge and the name inc_out_edge_id --- .../0411_unp-left.ipynb | 352 ++++++- Data/tables/child_uturn.csv | 2 +- Intermediates/match6.csv | 12 +- Results/sn_1704417600.add.xml | 818 +++++++-------- Results/sn_1704417900.add.xml | 932 +++++++++--------- .../generate_signals.cpython-38.pyc | Bin 26084 -> 26084 bytes .../preprocess_daily.cpython-38.pyc | Bin 30608 -> 24792 bytes Scripts/preprocess_daily.py | 88 +- 8 files changed, 1269 insertions(+), 935 deletions(-) diff --git a/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb b/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb index f1d14e145..4915085e2 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0411_unp-left.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -19,6 +19,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "비보호좌회전, 신호우회전, 유턴\n", + "\n", "줄임말 목록\n", "- `i` : 교차로번호, `inter_no`\n", "- `f` : 진입, from, `inc_edge_id`\n", @@ -41,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -53,20 +55,7 @@ "1-2. 테이블들이 로드되었습니다.\n", "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", "1-4. 테이블들의 무결성 검사를 완료했습니다.\n", - "2. 중간산출물을 생성합니다.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:14<00:00, 1185.13it/s]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "2. 중간산출물을 생성합니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", "2-2. 비보호우회전(g)을 배정했습니다.\n", "2-3. 직진 및 좌회전(G)을 배정했습니다.\n", @@ -82,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -110,8 +99,8 @@ " phase_no\n", " ring_type\n", " move_no\n", - " inc_dir\n", - " out_dir\n", + " inc_dire\n", + " out_dire\n", " inc_angle\n", " out_angle\n", " \n", @@ -177,12 +166,12 @@ "" ], "text/plain": [ - " inter_no phase_no ring_type move_no inc_dir out_dir 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" + " 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": {}, @@ -213,12 +202,12 @@ " phase_no\n", " ring_type\n", " move_no\n", - " inc_dir\n", - " out_dir\n", + " inc_dire\n", + " out_dire\n", " inc_angle\n", " out_angle\n", - " inc_edge\n", - " out_edge\n", + " inc_edge_id\n", + " out_edge_id\n", " node_id\n", " \n", " \n", @@ -298,19 +287,19 @@ "" ], "text/plain": [ - " inter_no phase_no ring_type move_no inc_dir out_dir 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 \n", + " 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", - " inc_edge out_edge node_id \n", - "0 -571542797_02 571542797_02 i0 \n", - "1 -571500487_01 571500487_01 i0 \n", - "2 -571500487_01 571500487_01 i0 \n", - "3 -571542797_02 571542797_02 i0 \n", - "4 571545870_02 571545870_01 i0 " + " 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": {}, @@ -321,6 +310,287 @@ "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": { diff --git a/Data/tables/child_uturn.csv b/Data/tables/child_uturn.csv index 5d723eedc..7e7c4db73 100644 --- a/Data/tables/child_uturn.csv +++ b/Data/tables/child_uturn.csv @@ -1,4 +1,4 @@ -parent_id,child_id,direction,condition,inc_edge,out_edge +parent_id,child_id,direction,condition,inc_edge_id,out_edge_id i0,u00,북,좌회전시,571500487_02,571500487_01.32 i2,u20,북,보행신호시,571542810_01.51,571542810_02 i3,u30,북,보행신호시,571556452_01,571556452_02 diff --git a/Intermediates/match6.csv b/Intermediates/match6.csv index 4ca5b75b9..ccff3dd0a 100644 --- a/Intermediates/match6.csv +++ b/Intermediates/match6.csv @@ -39,12 +39,12 @@ 37,177,u20,4,B,1,ggrggg 38,178,c30,1,A,20,rrrrrr 39,178,c30,1,B,20,rrrrrr -40,178,c30,2,A,20,rrrrrr -41,178,c30,2,B,20,rrrrrr -42,178,c30,3,A,20,rrrrrr -43,178,c30,3,B,20,rrrrrr -44,178,c30,4,A,20,rrrrrr -45,178,c30,4,B,20,rrrrrr +40,178,c30,2,A,20,GGGrrr +41,178,c30,2,B,20,rrrGGG +42,178,c30,3,A,20,GGGrrr +43,178,c30,3,B,20,rrrGGG +44,178,c30,4,A,20,GGGrrr +45,178,c30,4,B,20,rrrGGG 46,178,i3,1,A,8,grrrrrrrrrgrrrrrrrrr 47,178,i3,1,B,4,grrrrrrrrrgrrrrrrrrr 48,178,i3,2,A,7,grrrrrrrrrgrrrrrrrrr diff --git a/Results/sn_1704417600.add.xml b/Results/sn_1704417600.add.xml index a61d940ad..828c38ba9 100644 --- a/Results/sn_1704417600.add.xml +++ b/Results/sn_1704417600.add.xml @@ -1,5 +1,5 @@ - + @@ -44,424 +44,456 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - + - + @@ -506,7 +538,7 @@ - + @@ -551,7 +583,7 @@ - + @@ -596,7 +628,7 @@ - + diff --git a/Results/sn_1704417900.add.xml b/Results/sn_1704417900.add.xml index 344340632..5c09135db 100644 --- a/Results/sn_1704417900.add.xml +++ b/Results/sn_1704417900.add.xml @@ -1,467 +1,499 @@ - + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -506,7 +538,7 @@ - + @@ -551,7 +583,7 @@ - + @@ -596,62 +628,62 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + \ No newline at end of file diff --git a/Scripts/__pycache__/generate_signals.cpython-38.pyc b/Scripts/__pycache__/generate_signals.cpython-38.pyc index b42479518030150c5db65ffdb4e315efa44d546a..85db433c6b0cf79302f7b463fb4684746a63512c 100644 GIT binary patch delta 3509 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 diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 52312dbaa70be000507cfb237f047f69c4511f26..fd1395f84a5948f0fcb0a9a7fd6fbe30ad1397b6 100644 GIT binary patch delta 5728 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 P`L+U8$o_}iqD%Z=97r)j diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py index f5ca9d14e..8bc51b811 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -43,7 +43,7 @@ class DailyPreprocessor(): loading_dtype = { 'inter_no':'int', 'start_hour':'int', 'start_minute':'int', 'cycle':'int','offset':'int', 'node_id':'str', 'inter_type':'str', 'parent_id':'str','child_id':'str', - 'direction':'str', 'condition':'str', 'inc_edge':'str', 'out_edge':'str', + 'direction':'str', 'condition':'str', 'inc_edge_id':'str', 'out_edge_id':'str', 'end_unix':'int', 'inter_name':'str', 'inter_lat':'float', 'inter_lon':'float', 'group_no':'int', 'main_phase_no':'int', 'phase_no':'int','ring_type':'str', 'angle_code':'str'} @@ -315,7 +315,7 @@ class DailyPreprocessor(): match4의 각 행에 진입엣지id, 진출엣지id 노드id 추가한 테이블 * 진입, 진출엣지id를 얻은 방법 : cosine similarity - 컬럼명 : inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge, out_edge, node_id + 컬럼명 : inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id ''' # parent node만 가져옴. @@ -365,8 +365,8 @@ class DailyPreprocessor(): out_index = np.array([np.dot(out_vec, out_vec_true) for out_vec in out_vecs]).argmax() inc_edge_id = inc_edges[inc_index].getID() out_edge_id = out_edges[out_index].getID() - self.match5.at[index, 'inc_edge'] = inc_edge_id - self.match5.at[index, 'out_edge'] = out_edge_id + self.match5.at[index, 'inc_edge_id'] = inc_edge_id + self.match5.at[index, 'out_edge_id'] = out_edge_id self.match5['node_id'] = self.match5['inter_no'].map(self.inter2node) self.match5 = self.match5.sort_values(by=['inter_no','phase_no','ring_type']).reset_index(drop=True) @@ -375,7 +375,7 @@ class DailyPreprocessor(): ''' match5에서 부교차로(유턴교차로, 연동교차로)에 대한 행들을 추가함 - 컬럼명 : inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge, out_edge, node_id + 컬럼명 : inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id ''' self.node2inter = dict(zip(self.inter_node['node_id'], self.inter_node['inter_no'])) @@ -409,14 +409,14 @@ class DailyPreprocessor(): parent_id = row.parent_id dire = row.direction condition = row.condition - inc_edge_id = row.inc_edge - out_edge_id = row.out_edge + inc_edge_id = row.inc_edge_id + out_edge_id = row.out_edge_id # match5에서 부모노드id에 해당하는 행들을 가져옴 (cmatch) cmatch = self.match5.copy()[self.match5.node_id==parent_id] # match dataframe for a child node cmatch = cmatch.sort_values(by=['phase_no', 'ring_type']).reset_index(drop=True) cmatch['node_id'] = child_id - cmatch[['inc_edge', 'out_edge']] = np.nan + cmatch[['inc_edge_id', 'out_edge_id']] = np.nan # 보행신호시/좌회전시 진입/진출방향 ind = self.dires.index(dire) @@ -432,9 +432,9 @@ class DailyPreprocessor(): # 보행신호시/좌회전시 진입/진출 엣지id 배정 ind = self.dires.index(dire) if condition == "보행신호시": - cmatch.loc[pedes_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[pedes_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] elif condition == "좌회전시": - cmatch.loc[right_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[right_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] # 신호없음이동류발생시/보행신호이동류발생시 조건 all_redsigns = cmatch.move_no == 18 @@ -442,20 +442,20 @@ class DailyPreprocessor(): # 만약 어떤 유턴신호도 배정되지 않았다면 # 좌회전시 → 보행신호시 → 보행신호이동류발생시 → 신호없음이동류발생시 순으로 진입/진출 엣지id 배정 - uturn_not_assigned = cmatch[['inc_edge','out_edge']].isna().any(axis=1).all() + uturn_not_assigned = cmatch[['inc_edge_id','out_edge_id']].isna().any(axis=1).all() if uturn_not_assigned: # 좌회전시 if right_exists.any(): - cmatch.loc[right_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[right_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] # 보행신호시 elif pedes_exists.any(): - cmatch.loc[pedes_exists, ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[pedes_exists, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] # 보행신호이동류(17) 발생시 elif crosswalk_on.any(): - cmatch.loc[crosswalk_on & (cmatch.out_dire!=dire), ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[crosswalk_on & (cmatch.out_dire!=dire), ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] # 신호없음이동류(18) 발생시 elif all_redsigns.any(): - cmatch.loc[all_redsigns & (cmatch.out_dire!=dire), ['inc_edge', 'out_edge']] = [inc_edge_id, out_edge_id] + cmatch.loc[all_redsigns & (cmatch.out_dire!=dire), ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id] cmatches.append(cmatch) # 각 연등교차로(coordination node)에 대하여 (inc_edge_id, out_edge_id) 부여 @@ -477,11 +477,11 @@ class DailyPreprocessor(): 각 교차로에 대하여, 가능한 모든 이동류 (1~18, 21)에 대한 진입·진출엣지ID를 지정한 테이블 * 시차제 - 컬럼명 : inter_no, move_no, inc_dire, out_dire, inc_edge, out_edge, node_id + 컬럼명 : inter_no, move_no, inc_dire, out_dire, inc_edge_id, out_edge_id, node_id ''' self.match7 = self.match6.copy() - self.match7 = self.match7[['inter_no', 'move_no', 'inc_dire', 'out_dire', 'inc_edge', 'out_edge', 'node_id']] + self.match7 = self.match7[['inter_no', 'move_no', 'inc_dire', 'out_dire', 'inc_edge_id', 'out_edge_id', 'node_id']] # parent_ids = sorted(self.inter_node[self.inter_node.inter_type=='parent'].node_id.unique()) # child_ids = sorted(self.inter_node[self.inter_node.inter_type=='child'].node_id.unique()) @@ -499,13 +499,13 @@ class DailyPreprocessor(): for node_id in self.parent_ids: for inc_dire in pdires[node_id]: df = self.match7[(self.match7.node_id==node_id) & (self.match7.inc_dire==inc_dire)] - inc2id[(node_id, inc_dire)] = df.inc_edge.iloc[0] + inc2id[(node_id, inc_dire)] = df.inc_edge_id.iloc[0] # (4) 각 (교차로, 진출방향) 별 진출id 목록 : out2id (outgoing direction to outgoing edge_id) out2id = {} for node_id in self.parent_ids: for out_dire in pdires[node_id]: df = self.match7[(self.match7.node_id==node_id) & (self.match7.out_dire==out_dire)] - out2id[(node_id, out_dire)] = df.out_edge.iloc[0] + out2id[(node_id, out_dire)] = df.out_edge_id.iloc[0] # (5) 각 교차로별 가능한 (진입방향, 진출방향) 목록 : pflow (possible flows) pflow = {} for node_id in self.parent_ids: @@ -519,27 +519,27 @@ class DailyPreprocessor(): # 좌회전과 직진(1 ~ 16) for (inc_dire, out_dire) in pflow[node_id]: move_no = self.nema[(self.nema.inc_dire==inc_dire) & (self.nema.out_dire==out_dire)].move_no.iloc[0] - inc_edge = inc2id[(node_id, inc_dire)] - out_edge = out2id[(node_id, out_dire)] + inc_edge_id = inc2id[(node_id, inc_dire)] + out_edge_id = out2id[(node_id, out_dire)] new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[move_no], 'inc_dire':[inc_dire], 'out_dire':[out_dire], - 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]}) + 'inc_edge_id':[inc_edge_id], 'out_edge_id':[out_edge_id], 'node_id':[node_id]}) self.matching.append(new_row) # 보행신호(17), 전적색(18) new_row = pd.DataFrame({'inter_no':[inter_no] * 2, 'move_no':[17, 18], 'inc_dire':[None]*2, 'out_dire':[None]*2, - 'inc_edge':[None]*2, 'out_edge':[None]*2, 'node_id':[node_id]*2}) + 'inc_edge_id':[None]*2, 'out_edge_id':[None]*2, 'node_id':[node_id]*2}) self.matching.append(new_row) # 신호우회전(21) for d in range(len(dires_right)-1): inc_dire = dires_right[d] out_dire = dires_right[d+1] if {inc_dire, out_dire}.issubset(pdires[node_id]): - inc_edge = inc2id[(node_id, inc_dire)] - out_edge = out2id[(node_id, out_dire)] + inc_edge_id = inc2id[(node_id, inc_dire)] + out_edge_id = out2id[(node_id, out_dire)] new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[21], 'inc_dire':[inc_dire], 'out_dire':[out_dire], - 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]}) + 'inc_edge_id':[inc_edge_id], 'out_edge_id':[out_edge_id], 'node_id':[node_id]}) self.matching.append(new_row) self.matching.append(self.match7[self.match7.node_id.isin(self.child_ids)]) self.matching = pd.concat(self.matching) @@ -594,11 +594,11 @@ class DailyPreprocessor(): for _, row in self.matching.iterrows(): node_id = row.node_id move_no = row.move_no - inc_edge = row.inc_edge - out_edge = row.out_edge + inc_edge_id = row.inc_edge_id + out_edge_id = row.out_edge_id if move_no != 21: - inc_edge = self.net.getEdge(inc_edge) - out_edge = self.net.getEdge(out_edge) + inc_edge = self.net.getEdge(inc_edge_id) + out_edge = self.net.getEdge(out_edge_id) for conn in inc_edge.getConnections(out_edge): index = conn.getTLLinkIndex() if index >= 0: @@ -619,11 +619,11 @@ class DailyPreprocessor(): # 유턴교차로 for _, row in self.uturn.iterrows(): node_id = row.child_id - inc_edge = row.inc_edge - out_edge = row.out_edge - if not (pd.isna(inc_edge) and pd.isna(out_edge)): - inc_edge = self.net.getEdge(inc_edge) - out_edge = self.net.getEdge(out_edge) + inc_edge_id = row.inc_edge_id + out_edge = row.out_edge_id + if not (pd.isna(inc_edge_id) and pd.isna(out_edge_id)): + inc_edge = self.net.getEdge(inc_edge_id) + out_edge = self.net.getEdge(out_edge_id) for conn in inc_edge.getConnections(out_edge): index = conn.getTLLinkIndex() if index >= 0: @@ -644,13 +644,13 @@ class DailyPreprocessor(): for row in self.matching.itertuples(index=True): node_id = row.node_id move_no = row.move_no - inc_edge = row.inc_edge - out_edge = row.out_edge + inc_edge_id = row.inc_edge_id + out_edge_id = row.out_edge_id state = copy.deepcopy(self.node2init)[node_id] if move_no != 21: - inc_edge = self.net.getEdge(inc_edge) - out_edge = self.net.getEdge(out_edge) + inc_edge = self.net.getEdge(inc_edge_id) + out_edge = self.net.getEdge(out_edge_id) for conn in inc_edge.getConnections(out_edge): index = conn.getTLLinkIndex() if index >= 0: @@ -671,15 +671,15 @@ class DailyPreprocessor(): for i, row in self.match6.iterrows(): node_id = row.node_id move_no = row.move_no - inc_edge = row.inc_edge - out_edge = row.out_edge + inc_edge_id = row.inc_edge_id + out_edge_id = row.out_edge_id state = copy.deepcopy(self.node2init)[node_id] - if (pd.isna(inc_edge)) or (pd.isna(out_edge)): + if (pd.isna(inc_edge_id)) or (pd.isna(out_edge_id)): continue if (move_no != 21): # print(i, node_id, move_no, ''.join(state)) - inc_edge = self.net.getEdge(inc_edge) - out_edge = self.net.getEdge(out_edge) + inc_edge = self.net.getEdge(inc_edge_id) + out_edge = self.net.getEdge(out_edge_id) for conn in inc_edge.getConnections(out_edge): index = conn.getTLLinkIndex() if index >= 0: