Data Park/QGIS

[QGIS] QNEAT3 - OD Matrix (점과 점 사이의 최단 거리 구하기)

Data Park 2023. 2. 8. 19:49

안녕하십니까, '데 박' 입니다.

오늘은 강력한 QGIS 공간 네트워크 분석 기능중 QNEAT3의 OD Matrix 를 배워보도록 하겠습니다!

□ OD Matrix의 목적

: 점과 점의 직선상 거리는 실제 사람이 비행기를 타고 날라가는 것이 아니라면 다닐 수 없는 거리다.

따라서 도로망과 좌표를 사용하여 점과 점 사이의  “최소 이동거리”  를 계산하는 것에 목적이 있다

 
 

이해를 돕기 위해 서울역에서 서강대역까지의 거리를 예로 들어보겠습니다.

[서울역 - 서강대역]의 직선상 거리는 약 3.3km이지만

현실에서 우리가 이동해야할 거리는 4.0km입니다.

3.3km를 날라갈 것이 아니라면 우리에게 4.0km가 "최단거리" 가 되는 것입니다.

OD Matrix의 활용방안 예시

: 배달 최적 경로 추천서비스 https://techblog.woowahan.com/2608/

 

배달아~ 배달 가는길 알려줘!(단호함) | 우아한형제들 기술블로그

{{item.name}} 서론 배민라이더스에서는 배달거리를 업소와 고객의 주소 정보를 이용해서 지구는 적당히(?) 둥글다는 계산으로 거리계산을 하고 있습니다. ~대충대충코드~ double theta = from.getLongitude()

techblog.woowahan.com

1. 데이터 출처

- 서울 중학교 좌표 데이터 : 서울 열린데이터 광장https://data.seoul.go.kr/dataList/OA-20556/S/1/datasetView.do

 

- 서울 도로망 shp 데이터 : 국가공간정보포털 http://data.nsdi.go.kr/dataset/12902

 

(도로명주소)도로구간 - 오픈마켓

도로의 시점과 종점, 도로명부여의 기본정보

data.nsdi.go.kr

2. [ QNEAT3 ] 플러그인 설치

[ 플러그인 ] - [ QNEAT3 검색 ] - [ 플러그인 설치 ]

3. 데이터 불러오기 및 라벨링

- 도로망, 중학교 좌표계 = 5179 통일

concat("학교명" ,'(',"OBJECTID",')') #라벨링 코드

4. [ 공간처리 툴박스 ] - [ QNEAT3 ]

빨간 화살표와 네모 박스대로 하시면 됩니다.

(사진 클릭해서 보시면 더 잘 보입니다.)

 
 
 
 
 

5. Output OD Matrix의 속성(column) 개념

 

- origin_id = 출발지 id

- destination_id = 도착지 id

- entry_cost = (좌표->도로) 나가는 이동거리

- network_cost = (도로 -> 도로) 이동거리

- exit_cost = (도로 ->좌표) 들어가는 이동거리

- total_cost = 총이동 거리

6. [ 라인 길이 측정 ]으로 OD Matrix가 잘 계산되었는지 확인

"라인 길이 측정"으로 측정된 거리와 OD Matrix결과를 비교하였을때 미세한 차이가 날뿐 잘 계산된 것을 확인하실 수 있습니다! 약 4~6m 차이가 나는 것은 제 손이 자가 아니기 때문입니다^^ㅠ

다음 시간엔 OD Matrix 시각화를 배워보겠습니다!

여기서 글을 마치겠고, 혹시 이해가 안되시는, 혹은 더 궁금한 부분이 있으시다면 댓글 남겨주시면 감사하겠습니다.