GIS

QGIS: QNEAT3 플러그인을 이용하여 O-D 행렬(Matrix) 계산하기

유병혁 2019. 12. 7. 11:39

안녕하세요? 이번 글은 QGIS 3.4에서 QNEAT3 플러그인을 이용하여 O-D 행렬(Matrix)을 계산해 보겠습니다.

여기서 O-D는 Origin-Destination의 약어로써 기종점을 뜻합니다. O-D 행렬을 계산하면, 사용된 기종점 간의

최단 경로들을 한번에 계산할 수 있습니다.


실습을 위해 KTDB 교통망 GIS DB와 전국 국립공원사무소 29곳 좌표 데이터를 사용해 보겠습니다.

[1] KTDB 교통망 GIS DB 관련 글: KTDB 교통망 GIS DB 신청하기 | http://blog.daum.net/geoscience/1430

[2] 전국 국립공원사무소 좌표 데이터 관련 글: 카카오맵 API로 주소를 좌표로 변환하기 | http://blog.daum.net/geoscience/1436


AD0022는 KTDB 교통망 GIS DB 중 링크 데이터, NLPRK_OFF_LATLON은 전국 국립공원사무소 좌표 데이터입니다.


각각 레이어의 좌표계를 확인해 볼까요?! 해당 레이어에 마우스 오버를 하면 좌표계를 확인할 수 있습니다.

교통망 데이터의 좌표계는 USER:100037, 사무소 데이터의 좌표계는 EPSG:4326으로 정의되어 있습니다.

 


일단, 사무소 데이터의 좌표계를 교통망 데이터의 좌표계를 일치시켜 주겠습니다.


자, 이제 데이터가 준비되었으니 O-D 행렬(Matrix)을 계산해 보겠습니다.


'공간 처리 툴박스' 패널에서 QNEAT3 하부의 'OD-Matrix from Points as Lines (n:n)'을 실행합니다.


실행 창은 아래와 같습니다.


일단 Network Layer는 도로망 데이터를, Point Layer는 사무소 데이터를 선택합니다. Unique Point ID Field는

사무소명이 저장된 building_n 필드를, 최적화 기준은 Shortest Path (distance optimization)를 선택하겠습니다.


고급 파라미터는 아래와 같습니다(추후 별도 글로 정리하겠습니다).


이제 Output OD Matrix 파일을 정의하고 결과를 확인해 보겠습니다.


결과는 아래 그림과 같습니다. 전국 29개 국립공원 사무소 위치가 직선으로 연결되고, 그 속성에는 최단 경로 값이 저장되어 있습니다.


속성 테이블을 확인해 보면 아래와 같이 기점과 종점의 ID, 그리고 기점 비용(기점에서 네트워크까지 거리),

네트워크 비용, 종점 비용(네트워크에서 종점까지 거리), 전체 비용 순으로 값이 저장된 것을 확인하실 수 있습니다.


현재 O-D 행렬이 너무 많은 값을 보여주고 있으니, 1개 기점에 대한 결과만 확인해 볼까요?!

결과 값의 '레이어 속성 > 소스 > Provider Feature Filter'에서,


'쿼리 작성기'를 클릭하고,


아래와 같이 기점을 '계룡산국립공원사무소'로 제한해 봅니다.


자, 이제 이 쿼리를 적용하면,


아래와 같이 계룡산국립공원 기점에 대한 결과 값만 확인하실 수 있습니다.


계룡산국립공원사무소에서 가장 가까운 사무소는 어디일까요?! 속성 테이블을 확인해보니

속리산, 덕유산, 내장산 순으로 나머지 28개 국립공원의 최단 거리가 계산된 것을 보실 수 있습니다.