이 목표를 달성하는 것은 GIS에서 다소 기본적인 작업이지만 QGIS의 방법은 사소하지 않을 수 있습니다. GRASS의 r.walk
기능 을 사용하는 것이 가장 좋습니다 . 이방성 비용 표면 (dem + slope + other factor).
먼저에 대한 입력으로 마찰 표면을 작성해야합니다 r.walk
. 귀하의 경우 DEM의 범위와 일치하는 단일 값 래스터 (1.0) 일 수 있습니다. r.mapcalculator
다음 공식 을 사용하여 작성할 수 있습니다 . A*0+1
여기서 A는 DEM입니다.
다음으로 CSV에서 시작점 세트를 선택해야합니다. 이것들은 포인트, 누적 비용 표면이 계산됩니다. 모든 시작 지점에서 개별 비용 표면을 만들어야합니다. 이 단계의 모든 시작 지점과 관련된 종료 지점을 정의하는 것이 현명 할 수 있습니다 (물론 개별 레이어에서). 그런 r.walk
다음 생성 된 입력으로 실행할 수 있습니다 . 시작점은 단일 레이어에있을 수 있으며 대화 상자의 녹색 화살표를 사용하여 시작점을 반복 할 수 있습니다.
이제 이상적인 경우 모든 비용 표면에 대한 비용 표면과 끝 점이 있습니다. 이론상으로 가장 저렴한 비용의 경로를 찾을 수는 r.drain
있지만 오류가 발생했습니다 (파이썬은 QgisRaster 라이브러리를 가져올 수 없습니다). 같은 문제로 실행하면 SAGA의 "최소 비용 경로"알고리즘을 사용할 수 있습니다. 비용 표면이있는 모든 끝점에 대해 점과 선 레이어를 만듭니다 (반복 버튼 사용). 모든 선을 확보 한 후 SAGA의 "모양 레이어 병합"도구를 사용하여 단일 모양 파일로 병합 할 수 있습니다.
이 방법은 점 증분으로 인해 속도가 매우 느릴 수 있으므로 많은 점이 있으면 파이썬으로 방법을 자동화하려고 할 수 있습니다. 계산하는 데 많은 시간이 걸리지 만 (특히 비용 표면), 수많은 끝점 레이어를 수동으로 만들 필요는 없습니다.