self.match5
self.uturn
self.match6
각 유턴노드별로 self.match5
에서 해당되는 행들을 가져오고 (이것을 cmatch
라고 한다.)
조건별로 cmatch
에서 해당되는 행에 진입/진출엣지id를 지정한다.
각 유턴 노드에 대하여 cmatch
를 다음과 같이 정한다.
cmatch
self.match5
에 해당하는 데이터프레임(cmatch
)을 가져온다.node_id
는 자식노드id로 부여하고, 진입/진출엣지id는 np.nan
으로 초기화한다.cmatch
에서 진입/진출방향에 대응되는 행에 진입/진출엣지id를 지정한다.(3-1) 좌회전시
3-1에 해당하지 않고
좌회전에 대응되는 진입/진출방향에 대한 행이 cmatch
에 존재하면
해당 행에 진입/진출엣지id를 지정한다.
(3-2) 보행신호시
보행신호에 대응되는 진입/진출방향에 대한 행이 cmatch
에 존재하면
해당 행에 진입/진출엣지id를 지정한다.
(3-3) 보행신호이동류발생시
3-1, 3-2에 해당하지 않고, 이동류번호가 17(보행신호이동류)인 행이 cmatch
에 존재하며
유턴노드 방향으로 진출하는 신호가 없으면
해당 행에 진입/진출엣지id를 지정한다.
(3-4) 신호없음이동류발생시
3-1, 3-2, 3-3에 해당하지 않고, 이동류번호가 18(신호없음)인 행이 cmatch
에 존재하며
유턴노드 방향으로 진출하는 신호가 없으면
해당 행에 진입/진출엣지id를 지정한다.
(3-5) 3-1 ~ 3-4에 해당되지 않는다면 유턴신호를 g로 지정한다.
각 유턴노드에 대한 cmatch
들을 리스트 형태로 저장한 후 pd.concat
하여 합친다 (cmatches
).
연동교차로에 대해서도 비슷한 종류의 테이블을 만들어둔다. (self.coord
, 상세 생성과정 생략)
self.match5
, cmatches
, self.coord를
pd.concat
하여 self.match6
를 만든다.