R 언어는 연구 지역의 DEM 데이터에 따라 소유역을 나눕니다.

DEM 데이터에서 토지를 채우는 작업, 최대 집수 경로, ​​유역 범위 및 하위 유역 분할을 추출하는 작업의 경우 'WhiteboxTools' 패키지를 사용하여 완료할 수 있습니다. 다음은 간단한 단계의 예입니다.

먼저 `WhiteboxTools` 패키지를 설치했는지 확인하십시오. 다음 명령으로 설치할 수 있습니다.


리모트::install_github("jblindsay/whiteboxR")
 

그런 다음 아래 단계를 따르십시오.

1. DEM 데이터를 읽습니다. `whitebox_tools` 함수에서 `lidar_tin_gridding` 도구를 사용하여 DEM 데이터를 TIN 형식으로 변환합니다.


라이브러리(화이트박스)

# DEM 데이터 읽기
dem <- "path/DEM file.tif"
tin <- paste0(dem, ".tin")
wbt <- whitebox_tools()
wbt$run_tool("lidar_tin_gridding", list("-i", dem , "-o", 주석))
 

2. 채우기 작업. 채우기 처리를 위해 `pit_remove` 도구를 사용하여 채워진 DEM 데이터를 생성합니다.


채워진_dem <- paste0(dem, "_filled.tif")
wbt$run_tool("pit_remove", list("-i", tin, "-o", filled_dem))
 

3. 최대 집수 경로를 추출합니다. `d8_flow_accumulation` 도구를 사용하여 흐름 누적을 계산하고 `max_upslope_flowpath` 도구를 사용하여 최대 집수 경로를 추출합니다.


flow_accumulation <- paste0(filled_dem, "_flow_accumulation.tif")
wbt$run_tool("d8_flow_accumulation", list("-i", filled_dem, "-o", flow_accumulation))
max_flowpath <- paste0(dem, "_max_flowpath.shp" )
wbt$run_tool("max_upslope_flowpath", list("-i", flow_accumulation, "-o", max_flowpath))
 

4. 유역 범위를 추출합니다. 유역 추출을 위해 'watershed' 도구를 사용하고 결과를 벡터 기능 파일로 저장합니다.


분수령 <- paste0(dem, "_watershed.shp")
wbt$run_tool("watershed", list("-b", filled_dem, "-s", flow_accumulation, "-o", watershed))
 

5. 소유역 분할을 실시한다. 소유역 묘사를 위해 `subbasins` 도구를 사용하고 결과를 벡터 기능 파일로 저장합니다.


subbasins <- paste0(dem, "_subbasins.shp")
wbt$run_tool("subbasins", list("-p", max_flowpath, "-o", subbasins))
 

위 예제의 코드는 파일 경로 및 파일 이름 매개변수를 실제 매개변수로 대체해야 합니다. 또한 'WhiteboxTools'는 오픈 소스 GIS 도구의 강력한 라이브러리로, 필요에 따라 추가로 탐색할 수 있는 다른 많은 유용한 도구도 포함되어 있습니다.

おすすめ

転載: blog.csdn.net/2301_77925375/article/details/131389620