[SUMO 이야기] #2. SUMO 튜토리얼: 실전 네트워크 구성하기
SUMO를 처음 설치하고 나면 초보자는 당장 무엇을 해야할지 모르기 마련이다(나 또한 그랬다).
일단은 다음 링크로 접속하여 Beginner Tutorial에 대한 내용들을 눈으로 훑어보자.
https://sumo.dlr.de/docs/Tutorials/index.html
Tutorials - SUMO Documentation
1.1.0 --> Tutorials Beginner Tutorials SUMO User Conference Tutorials The SUMO User Conference is an anual event organized by the German Aerospace Center (DLR) in Berlin. Since 2015, each conference begins with a SUMO tutorial session. Below you can find t
sumo.dlr.de
다 읽어 보았는가? 읽으면서 느꼈겠지만, 이 콘텐츠는 SUMO를 사용하는 데 있어서 기초적인 것은 맞음에도 불구하고 사실 실전에서 쓰기와는 약간 동떨어진 내용이라고 느낄 지도 모른다. 그래서 본 글은 조금 더 연구, 프로젝트에 직접적으로 도움이 될 수 있는 내용으로 구성하고자 한다.
우선, SUMO의 기본적인 구성에 대해서 먼저 알아보자. 기본적으로 이 시뮬레이션이 어떻게 돌아가는지 알아두면 이해에 도움이 될 것이다.
SUMO는 기본적으로 네트워크 파일(net.xml)과 수요 파일(rou.xml)이 필요하다. 직관적으로도 시뮬레이션에 필요한 것은 그 바탕이 되는 도로망과, 차량이 언제 출발하여 어느 경로로 가는지에 대한 수요에 대한 정보이다. 그렇다면 이들 파일은 어떻게 만들고, 구성해야 하는 것일까? 차근차근 알아보자.
1. 네트워크 파일 만들기
네트워크 파일은 SUMO를 설치하면 동봉되는 netedit이라는 응용 프로그램을 이용하여 만들 수 있다. 자동으로 지도를 네트워크 파일로 만들어주는 OSMWebWizard라는 응용 프로그램을 이용하여 만들 수도 있지만(관심이 있는 사람은 Beginner Tutorial을 참고하라), Openstreetmap을 기반으로 변환해주는 것이기 때문에 지도상 오류도 많고, 굉장히 고쳐야 될 것이 많다.
그래서 나는 보통 소규모 네트워크는 netedit으로 직접 만드는 편이다. 다시 강조하지만 웬만한 large-scale network가 아니라면 직접 작업하는 것이 정신 건강에 좋을 확률이 높다. 먼저 netedit을 켠다.

File 탭의 New network를 눌러 빈 네트워크 파일을 생성한다. 그다음 참고할 실제 지도를 도화지처럼 깔기 위해서 Edit 탭의 Edit Visualisation을 클릭한다.

그럼 다음과 같은 창이 하나 뜰텐데, Background 탭(기본으로 선택되어 있다)의 연두색 Plus 모양 버튼을 눌러 바탕으로 들어갈 파일 경로를 생성해준다.

그다음 네이버 지도 등 지도에 들어가서 원하는 지역의 지도를 캡쳐한다. 여기서는 서울대입구역 인근을 캡쳐하였다.

그리고 이 캡쳐 파일의 이미지 크기를 메모해둔다. 방금 캡쳐한 사진은 1393 x 1040 였다.

다시 돌아와서 filename에는 이미지 파일의 절대경로를 입력하고, width와 height는 위에서 메모한 이미지의 크기를 차례로 입력한다. 다만, 원래는 축척을 고려하여 이미지의 크기를 결정해야 하지만, 본 글에서는 고려하지 않는다. 축척을 고려하고 싶다면 네이버 지도 등에서 실제 네트워크의 길이를 잰 후 그 비율을 곱하여 이미지 크기를 결정해야 한다.

OK를 누르면 다음과 같이 배경으로 지도 이미지 파일이 깔아진다.

다음은 배경을 깔았으니 이 배경을 토대로 네트워크를 만들어줄 것이다.

상단의 Set create edge mode를 활성화한 후, 주요 노드 지점을 클릭하면서 뼈대를 만들어준다.

상단의 Set move 버튼을 통해 Node의 위치를 수정할 수도 있고, 다음과 같이 도로에 굴곡을 생성하는 것도 가능하다. 이외에도 여러 기능이 많기는 하지만 당장 필요한 것은 아니기에 생략한다.

자 이제 뼈대는 완성 되었으니 차로수를 맞추어보자. 실제 지도의 위성 맵 혹은 로드뷰를 을 보면서 차로수를 맞추어준다. 여기서는 귀찮으므로 임의대로 작성했다. 상단의 돋보기 모양(inspect mode)을 눌러 링크를 클릭하면 왼쪽 attribute창에서 차로 수를 수정할 수 있다.

또한, 다음과 같이 링크를 클릭하고 오른쪽 클릭하여 Edge operations -> Add reverse direction for edge를 통해 링크를 양방향으로 만들어준다.

그럼 이제 완성이다. 아, Traci를 편리하게 이용하기 위해서는 Node 및 Edge ID들을 규칙적으로 만들어두는 것도 나쁘지 않다. 상단의 돋보기 모양(inspect mode)을 눌러 노드 혹은 링크를 클릭하면 왼쪽에 attribute창에서 id를 수정할 수 있다. 아무튼 네트워크 파일이 완성이 됐다면 Save network를 통해 저장해주자.


이제 네트워크 파일은 준비되었다. 다음에는 수요와 관련된 파일을 다루어보도록 하겠다.