중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

6.3. 수업: 망 분석

두 포인트들 사이의 최단 거리를 계산하는 것은 흔한 GIS 작업입니다. Processing Toolbox 에서 이를 위한 도구들을 찾을 수 있습니다.

이 수업의 목표: Network analysis 알고리즘 사용법 배우기.

6.3.1. ★☆☆ 따라해보세요: 도구와 데이터

Processing ► Network Analysis 메뉴에서 모든 망(network) 분석 알고리즘들을 찾을 수 있습니다. 사용할 수 있는 도구들이 많이 있다는 사실을 알 수 있을 겁니다:

../../../_images/select_network_algorithms.png

exercise_data/network_analysis/network.qgz 프로젝트 파일을 여십시오. 이 프로젝트는 레이어를 2개 담고 있습니다:

  • network_points

  • network_lines

network_lines 레이어에는 이미 도로망을 이해하기 쉽게 해주는 스타일이 적용되어 있습니다.

../../../_images/network_map.png

최단 거리 도구들은 다음을 지정해서 망의 두 포인트들 사이의 최단 또는 최속 경로 가운데 하나를 계산하기 위한 수단을 제공합니다:

  • 맵 상에서 선택한 시작 및 종단 포인트

  • 맵 상에서 선택한 시작 포인트 하나와 포인트 레이어에서 가져온 종단 포인트들

  • 포인트 레이어에서 가져온 시작 포인트들과 맵 상에서 선택한 종단 포인트 하나

시작해봅시다.

6.3.2. ★☆☆ 최단 경로 계산하기 (포인트에서 포인트로)

Network analysis ► Shortest path (point to point) 는 여러분이 맵 상에서 직접 선택한 두 포인트 사이의 최단 거리를 계산할 수 있게 해줍니다.

이 예제에서는 두 포인트 사이의 (최속이 아니라) 최단 경로를 계산할 것입니다.

  1. Shortest path (point to point) 알고리즘을 여십시오.

  2. Vector layer representing networknetwork_lines 를 선택하십시오.

  3. Path type to calculateShortest 를 사용하십시오.

    다음 두 포인트를 분석을 위한 시작 및 종단 포인트로 사용합니다:

    ../../../_images/start_end_point.png
  4. Start point (x, y) 옆에 있는 버튼을 클릭하고 그림에서 Starting Point 라고 태그되어 있는 위치를 선택하십시오. 정확한 선택을 위해 스냅 작업 옵션을 활성화시키십시오. 클릭한 포인트의 좌표가 추가됩니다.

  5. 동일한 과정을 거쳐, 이번에는 End point (x, y)Ending point 라고 태그된 위치를 선택하십시오.

  6. Run 버튼을 클릭하십시오:

    ../../../_images/shortest_point.png
  7. 선택한 포인트들 사이의 최단 경로를 나타내는 새 라인 레이어가 생성되었습니다. 결과물을 더 잘 보려면 network_lines 레이어를 체크 해제하십시오.

    ../../../_images/shortest_point_result.png
  8. 산출 레이어의 속성 테이블을 여십시오. 시작 및 종단 포인트의 좌표와 비용(cost) 을 보여주는 필드 3개를 담고 있습니다.

    Path type to calculateShortest 를 선택했기 때문에, 비용 은 두 위치 사이의 레이어 단위 거리 를 뜻합니다.

    이 예제에서 선택한 포인트들 사이의 최단 거리는 약 1000 미터입니다:

    ../../../_images/shortest_point_attributes.png

이제 이 도구를 사용하는 방법을 알았으니, 다른 위치들을 선택해서 마음대로 테스트해보십시오.

6.3.3. ★★☆ 혼자서 해보세요: 최속 경로

이전 예제와 동일한 데이터를 사용해서, 두 포인트 사이의 최속 경로를 계산해보십시오.

시작 포인트에서 종단 포인트로 가는 데 시간이 얼마나 필요한가요?

6.3.4. ★★☆ 따라해보세요: 고급 옵션

망 분석 도구들의 옵션들을 더 많이 탐색해봅시다. 이전 예제 에서 두 포인트 사이의 최속 경로를 계산했습니다. 상상할 수 있듯이, 이 이동 시간은 이동 속도 에 따라 달라집니다.

이전 예제와 동일한 레이어와 시작 및 종단 포인트를 사용할 것입니다.

  1. Shortest path (point to point) 알고리즘을 여십시오.

  2. 이전과 마찬가지로 Input layer, Start point (x, y)End point (x, y) 를 채우십시오.

  3. Path type to calculateFastest 를 선택하십시오.

  4. Advanced parameters 메뉴를 엽니다.

  5. Default speed (km/h) 의 값을 기본값 50 에서 4 로 변경하십시오.

    ../../../_images/shortest_path_advanced.png
  6. Run 을 클릭하십시오.

  7. 알고리즘 실행이 완료되면, 대화창을 닫고 산출 레이어의 속성 테이블을 여십시오.

    비용 필드가 여러분이 선택한 속도 파라미터에 따른 값을 담고 있습니다. 비용 필드의 값을 소수점 시간에서 좀 더 알기 쉬운 단위 값으로 변환할 수 있습니다.

  8. calculateField 아이콘을 클릭해서 필드 계산기를 여십시오.

  9. 경로 비용을 분 단위로 저장할 새 minutes 필드를 추가하십시오.

    ../../../_images/shortest_path_conversion.png

이게 다입니다! 이제 전체 망 속도가 4 km/h 로 고정된 경우 한 포인트에서 다른 포인트로 가는 데 걸리는 시간이 몇 분인지 알 수 있습니다.

6.3.5. ★★★ 속도 제한이 있는 최단 경로

망 분석 툴박스는 다른 흥미로운 옵션도 가지고 있습니다. 다음 맵을 살펴보십시오:

../../../_images/speed_limit.png

각 도로의 속도 제한 을 고려한 최속 경로를 알고자 합니다. (라벨이 시속 킬로미터 단위 속도 제한을 나타냅니다.) 속도 제한을 고려하지 않은 최단 경로는 당연히 보라색 경로일 것입니다. 그러나 해당 도로의 속도 제한은 시속 20킬로미터인 반면, 녹색 도로에서는 시속 100킬로미터로 달릴 수 있죠!

첫 번째 예제와 마찬가지로, Network analysis ► Shortest path (point to point) 를 사용하고 시작 및 종단 포인트를 직접 선택할 것입니다.

  1. Network analysis ► Shortest path (point to point) 알고리즘을 여십시오.

  2. Vector layer representing network 파라미터에 network_lines 를 선택하십시오.

  3. Path type to calculateFastest 를 선택하십시오.

  4. 이전과 마찬가지로 Start point (x, y)End point (x, y) 를 선택하십시오.

  5. Advanced parameters 메뉴를 엽니다.

  6. Speed Field 파라미터에 speed 필드를 선택하십시오. 이 옵션을 사용하면 알고리즘이 각 도로의 속도 제한을 연산에 넣을 것입니다.

    ../../../_images/speed_limit_parameters.png
  7. Run 버튼을 클릭하십시오.

  8. 결과물을 더 잘 보려면 network_lines 레이어를 끄십시오.

    ../../../_images/speed_limit_result.png

보면 알겠지만, 최속 경로가 최단 경로와 일치하지 않습니다.

6.3.6. ★★☆ 서비스 영역 (레이어로부터)

Network Analysis ► Service area (from layer) 알고리즘은 다음 질문에 답할 수 있습니다: 포인트 레이어가 주어졌을 때, 지정한 거리 또는 시간 값 안에 도달할 수 있는 모든 영역은 어디어디인가?

참고

Network Analysis ► Service area (from point) 도 동일한 알고리즘이지만, 여러분이 맵 상에서 포인트를 직접 선택할 수 있습니다.

거리를 250 미터로 지정했을 때, network_points 레이어의 각 포인트에서 망을 따라 얼마나 멀리 갈 수 있는지 알아보려 합니다.

  1. network_points 를 제외한 다른 모든 레이어를 체크 해제하십시오.

  2. Network Analysis ► Service area (from layer) 알고리즘을 여십시오.

  3. Vector layer representing networknetwork_lines 를 선택하십시오.

  4. Vector layer with start pointsnetwork_points 를 선택하십시오.

  5. Path type to calculateShortest 를 선택하십시오.

  6. Travel cost 파라미터에 250 을 입력하십시오.

  7. Run 버튼을 클릭한 다음 대화창을 닫으십시오.

    ../../../_images/service_area.png

    산출 레이어는 거리를 250미터로 지정했을 때 포인트 피처들에서 도달할 수 있는 최장 경로를 나타냅니다:

    ../../../_images/service_area_result.png

멋지지 않습니까?

6.3.7. 결론

이제 최단 및 최속 경로 문제를 해결하기 위해 Network analysis 알고리즘을 사용하는 방법을 배웠습니다.

벡터 레이어 데이터 상에서 공간 통계를 수행할 준비가 끝났습니다. 해볼까요!

6.3.8. 다음은 무엇을 배우게 될까요?

다음 수업에서는 벡터 데이터셋 상에서 공간 통계 알고리즘을 실행하는 방법을 배워보겠습니다.