이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 r.costgrass 명령입니다.
프로그램:
이름
비용 - 서로 다른 곳 사이를 이동하는 누적 비용을 보여주는 래스터 맵을 만듭니다.
셀 범주 값이 비용을 나타내는 입력 래스터 맵의 지리적 위치.
키워드
래스터, 비용 표면, 누적 비용, 비용 할당
개요
비용
비용 --도움
비용 [-크니] 입력=name 출력=name [가장 가까운=name] [아웃디르=name]
[시작점=name] [stop_points=name] [시작 래스터=name]
[시작 좌표=동쪽, 북쪽[,동쪽, 북쪽,...]]
[정지 좌표=동쪽, 북쪽[,동쪽, 북쪽,...]] [최대 비용=가치] [null_비용=가치]
[기억=가치] [--덮어 쓰기] [--도움] [--말 수가 많은] [--조용한] [--ui]
플래그 :
-k
'기사의 움직임'을 사용하십시오. 느리지만 더 정확한
-n
출력 래스터 맵에서 null 값 유지
-r
래스터 맵의 값으로 시작
-i
디스크 공간 및 메모리 요구 사항에 대한 정보를 인쇄하고 종료합니다.
--덮어쓰기
출력 파일이 기존 파일을 덮어쓰도록 허용
--도움
사용 요약 인쇄
--말 수가 많은
자세한 모듈 출력
--조용한
조용한 모듈 출력
--UI
강제 실행 GUI 대화 상자
매개 변수 :
입력=name [필수의]
그리드 셀 비용 정보를 포함하는 입력 래스터 맵의 이름
출력=name [필수의]
출력 래스터 맵의 이름
가장 가까운=name
가장 가까운 시작점이 있는 출력 래스터 맵의 이름
아웃디르=name
이동 방향을 포함하는 출력 래스터 맵의 이름
시작점=name
시작 벡터 포인트 맵의 이름
또는 직접 OGR 액세스를 위한 데이터 소스
stop_points=name
정지 벡터 포인트 맵의 이름
또는 직접 OGR 액세스를 위한 데이터 소스
시작 래스터=name
시작 래스터 포인트 맵의 이름
시작 좌표=동쪽, 북쪽[, 동쪽, 북쪽,...]
시작점 좌표(E,N)
정지 좌표=동쪽, 북쪽[, 동쪽, 북쪽,...]
정지점 좌표(E,N)
최대 비용=가치
최대 누적 비용
태만: 0
null_비용=가치
null 셀에 할당된 비용. 기본적으로 null 셀은 제외됩니다.
기억=가치
사용할 최대 메모리(MB)
태만: 300
기술
비용 각 셀로 이동하는 누적 비용을 결정합니다. 비용 표면 ( 입력
래스터 맵) 위치가 지정된 다른 사용자 지정 셀의
지리적 좌표. 원래 비용 표면 맵의 각 셀에는
해당 셀을 순회하는 비용을 나타내는 범주 값입니다. 비용 1)을 생산할 것입니다
an 출력 각 셀에 가장 낮은 총 비용이 포함된 래스터 맵
각 셀과 사용자 지정 지점 사이의 공간(대각선 비용에
셀의 크기에 따라 달라지는 요소) 및 2) 두 번째 래스터 맵 레이어
시작점으로 되돌아가는 경로에서 다음 셀로의 이동 방향 표시(참조
이동 방향). 이 모듈은 현재 지리적 지역 설정을 사용합니다. NS 출력
지도는 다음과 같은 데이터 형식을 갖습니다. 입력 맵, 정수 또는 부동 소수점.
옵션
The 입력 name 범주 값이 표면을 나타내는 래스터 맵의 이름입니다.
비용. NS 출력 name 누적 비용의 결과 래스터 맵의 이름입니다. NS
아웃디르 name 이동 방향의 결과 래스터 맵의 이름입니다(이동
방향).
비용 시작점을 식별하는 세 가지 다른 방법으로 실행할 수 있습니다. 하나
지정된 대로 더 많은 포인트(지리적 좌표 쌍)를 제공할 수 있습니다.
시작 좌표 명령줄에서, 벡터 포인트 파일에서, 또는 래스터 맵에서.
NULL이 아닌 모든 셀은 시작점으로 간주됩니다.
각각의 x, y 시작 좌표 쌍은 다음과 같은 지점의 지리적 위치를 제공합니다.
운송 비용을 계산해야 합니다. 원하는 만큼 포인트를 입력할 수 있습니다.
사용자. 이러한 시작점은 다음을 통해 벡터 포인트 파일에서 읽을 수도 있습니다.
시작점 옵션 또는 래스터 맵에서 시작 래스터 옵션을 선택합니다.
비용 다음 중 하나가 발생하면 비용 누적이 중지됩니다. 최대 비용 도달하거나 중지 중 하나
로 주어진 포인트 정지 좌표 도달했습니다. 또는 정지 지점을 읽을 수 있습니다.
벡터 포인트 파일에서 stop_points 옵션. 실행 중에 한 번
모든 중지 지점에 대한 누적 비용이 결정되면 처리가 중지됩니다.
벡터 포인트 파일에서 읽은 두 사이트와 명령줄에 제공된 사이트는 모두
처리됨.
null 셀 입력 맵에 (양수 부동 소수점) 비용을 할당할 수 있습니다.
null_비용 옵션을 선택합니다.
입력 맵 null 셀에 비용이 지정되면 null_비용 옵션, 해당
출력 맵의 셀은 더 이상 null 셀이 아닙니다. 를 사용하여 -n 플래그, null 셀
입력 맵은 출력 맵에서 null 셀로 유지됩니다.
As 비용 매우 오랫동안 실행할 수 있으므로 다음을 사용하는 것이 유용할 수 있습니다. --V 자세한 플래그
진행 상황을 추적합니다.
기사의 움직임(-k 플래그)를 사용하여 출력의 정확도를 높일 수 있습니다. 에서
아래 다이어그램에서 중심 위치(O)는 누적되는 그리드 셀을 나타냅니다.
거리가 계산됩니다. X로 표시된 이웃은 항상 고려됩니다.
누적 비용 업데이트. 이랑 -k 옵션에서 K로 표시된 이웃도
깊이 생각한.
. . . . . . . . . . . . . . .
. . . 케이 . . 케이 . . .
. . . . . . . . . . . . . . .
. . 케이 . NS . NS . NS . 케이 . .
. . . . . . . . . . . . . . .
. . . NS . 오 . NS . . .
. . . . . . . . . . . . . . .
. . 케이 . NS . NS . NS . 케이 . .
. . . . . . . . . . . . . . .
. . . 케이 . . 케이 . . .
. . . . . . . . . . . . . . .
기사의 이동 예:
평면 비용 표면 없이 (왼쪽 창유리) 그리고 과 전에, 기사의
움직임 (권리 창유리). The 디폴트 값 is 에 성장 전에, 비용 밖으로
in 8 지도. 사용 전에, 기사의 움직임 성장 it 밖으로
in 16 지도.
경우 가장 가까운 출력 매개변수가 지정되면 모듈은 각 셀에 대해
비용을 넘어 이동하면서 최소화된 누적 비용을 기준으로 가장 가까운 시작점
지도.
NULL 셀
기본적으로 입력 래스터 맵의 null 셀은 알고리즘에서 제외되므로
출력 맵에 유지됩니다.
원하는 경우 비용 null 셀의 모든 영역을 투명하게 가로지르려면 null_비용= 0.0
옵션을 사용해야 합니다. 그런 다음 null 셀은 인접한 비용을 전파합니다. 이러한 세포는
다음을 사용하여 출력 맵에서 null 셀로 유지됩니다. -n 깃발.
노트
때로는 정수 셀 범주 값 간의 차이가 비용
누적 비용 표면 출력이 작기 때문에 이 누적 비용 출력을 정확하게 계산할 수 없습니다.
에 대한 입력으로 사용 r.드레인 (r.드레인 나쁜 결과를 출력합니다). 이 문제는
누적 비용에서 셀 범주 값 간의 차이를 만들어 우회
더 크게 출력합니다. 에서 출력되는 경우 다음을 수행하는 것이 좋습니다. 비용 에 대한 입력으로 사용됩니다.
r.드레인, 사용자는 입력 비용 표면 맵을 다음과 같이 곱합니다. 비용 지도 값으로
셀 해상도, 실행 전 비용. 이것은 다음을 사용하여 수행할 수 있습니다. r.mapcalc. 지도
해상도는 다음을 사용하여 찾을 수 있습니다. g.지역. 이 문제는 부동 소수점에서 발생하지 않습니다.
지도.
암호알고리즘 노트
최소 여행 비용을 계산하는 기본적인 접근 방식은 다음과 같습니다.
사용자는 각 셀을 순회하는 비용을 나타내는 래스터 맵을 생성합니다.
남북 방향과 동서 방향. 이 지도는 일련의 시작 지점과 함께
에 제출 비용. 시작점은 비용이 들어가는 목록 셀에 넣습니다.
인접한 셀을 계산해야 합니다. 누적 비용이 가장 낮은 목록의 셀
인접 셀에 대한 비용 계산을 위해 선택됩니다. 비용이 계산되고
셀이 목록에 추가되고 원래 셀이 완성됩니다. 이 선택하는 과정은
가장 낮은 누적 비용 셀, 이웃에 대한 비용 계산, 이웃 배치
목록에 있고 목록에서 원래 셀 제거는 목록이 될 때까지 계속됩니다.
빈.
이 알고리즘에서 가장 시간이 많이 소요되는 측면은 셀 목록을 관리하는 것입니다.
누적 비용이 최소한 초기에 계산된 경우. 비용 바이너리를 사용
셀을 효율적으로 유지하기 위해 트리의 각 노드에 연결 목록이 있는 트리
동일한 누적 비용.
비용, 대부분의 모든 GRASS 래스터 프로그램과 마찬가지로 다음보다 큰 지도에서 실행되도록 만들어졌습니다.
사용 가능한 컴퓨터 메모리에 들어갈 수 있습니다. 알고리즘이 동적 목록을 통해 작동함에 따라
셀 전체 영역에서 거의 무작위로 이동할 수 있습니다. 비용 전체 영역을 나눕니다
여러 조각으로 만들고 이러한 조각을 메모리 안팎에서(디스크로/디스크에서) 다음과 같이 교환합니다.
필요. 이것은 2차원 래스터 맵을 위해 최적으로 설계된 가상 메모리 접근 방식을 제공합니다.
사용할 메모리의 양 비용 로 제어할 수 있습니다. 기억 선택권,
기본값은 300MB입니다. 메모리가 적은 시스템의 경우 이 값을 더 낮은 값으로 설정해야 합니다.
값.
사용 예
다음 예제를 고려하십시오.
입력:
비용면
. . . . . . . . . . . . . . .
. 2 . 2 . 1 . 1 . 5 . 5 . 5 .
. . . . . . . . . . . . . . .
. 2 . 2 . 8 . 8 . 5 . 2 . 1 .
. . . . . . . . . . . . . . .
. 7 . 1 . 1 . 8 . 2 . 2 . 2 .
. . . . . . . . . . . . . . .
. 8 . 7 . 8 . 8 . 8 . 8 . 5 .
. . . . . . . . . . _____ . .
. 8 . 8 . 1 . 1 . 5 | 3 | 9 .
. . . . . . . . . . |___| . .
. 8 . 1 . 1 . 2 . 5 . 3 . 9 .
. . . . . . . . . . . . . . .
출력(-k 사용): 출력(-k 사용 안함):
누적 원가 표면 누적 원가 표면
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... * * * * * . . . . . .
. 21. 21. 20. 19. 17. 15. 14. . 22. 21* 21 * 20 * 17, 15, 14.
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... * * * * * . . . . . .
. 20. 19. 22. 19. 15. 12. 11. . 20. 19. 22* 20 * 15, 12, 11.
. . . . . . . . . . . . . . . . . . . . . * * * * * . . . .
. 22. 18. 17. 17. 12. 11. 9. . 22. 18. 17* 18 * 13 * 11. 9.
. . . . . . . . . . . . . . . . . . . . . * * * * * . . . .
. 21. 14. 13. 12. 8. 6. 6. . 21. 14. 13. 12. 8. 6. 6.
. . . . . . . . . . _____. . . . . . . . . . . . . . . . .
. 16. 13. 8. 7. 4 | 0 | 6. . 16. 13. 8. 7. 4. 0. 6.
. . . . . . . . . . |___|. . . . . . . . . . . . . . . . .
. 14. 9. 8. 9. 6. 3. 8. . 14. 9. 8. 9. 6. 3. 8.
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
위의 예에서 사용자가 제공한 시작 위치는 3 위의 입력에서
지도. 출력 맵의 비용은 각 상자("셀")에서 이동하는 데 드는 총 비용을 나타냅니다.
하나 이상의(여기서는 하나의) 시작 위치로 이동합니다. 별표로 둘러싸인 셀은
기사의 기술을 사용하는 작업과 사용하지 않는 작업의 차이점(-k)
옵션을 선택합니다.
산출 분석
출력 지도는 예를 들어 시작 위치가 표시되는 고도 모델로 볼 수 있습니다.
위치는 가장 낮은 지점입니다. 에서 출력 비용 에 대한 입력으로 사용할 수 있습니다.
r.드레인 방향 플래그와 함께 -d, 이것에 의해 주어진 최소 비용 경로를 추적하기 위해
주어진 셀과 비용 시작 위치. 두 프로그램은 언제
함께 사용하여 두 지도 위치 간에 최소 비용 경로 또는 회랑 생성
(세포).
최단 거리 표면
The 비용 모듈을 사용하면 래스터에서 각 픽셀의 최단 거리를 계산할 수 있습니다.
근처 도로까지의 가구의 최단 거리를 결정하는 것과 같은 라인. 을위한
비용 값이 1인 이 비용 표면이 사용됩니다. 계산은 다음과 같이 수행됩니다. 비용 as
다음(Spearfish 지역의 예):
g.region 래스터=도로 -p
r.mapcalc "area.one = 1"
r.cost -k 입력=area.one 출력=거리 start_raster=도로
d.rast 거리
d.rast.num 거리
# 래스터 해상도를 사용하여 셀 거리에서 미터법 거리로 변환:
r.mapcalc "dist_meters = 거리 * (ewres()+nsres())/2."
d.rast dist_meters
운동 방향
움직임 방향 표면은 생성된 움직임의 순서를 기록하기 위해 생성됩니다.
비용 축적 표면. 그것 없이 r.드레인 에서 경로를 올바르게 생성하지 않습니다.
끝점을 시작점으로 되돌립니다. 각 셀의 방향은 다음을 가리킵니다.
셀. 방향은 동쪽에서 CCW로 기록됩니다.
112.5 67.5 즉, 값이 135인 셀
157.5 135 90 45 22.5는 다음 셀이 북서쪽에 있음을 의미합니다.
180 x 360
202.5 225 270 315 337.5
247.5 292.5
비용 배당
예: 비용 할당 맵 "costalloc" 및 누적 비용 맵 계산
주어진 시작점에 대한 "costsurf"(맵 "소스") 및 주어진 비용 래스터 맵 "비용":
r.cost 입력=비용 start_raster=소스 출력=costsurf Nearest=costalloc
Find 전에, 최저한의 비용 통로
일단 비용 누적 비용 맵을 계산하고, r.드레인 최소 비용을 찾는 데 사용할 수 있습니다.
길. 꼭 사용하세요 -d 실행 시 플래그 및 이동 방향 래스터 맵
r.drain 경로가 적절한 이동 방향에 따라 계산되도록 합니다.
onworks.net 서비스를 사용하여 r.costgrass 온라인 사용