Interfacing With R
In addition to the Python interface, the WhiteboxTools library is also accessible from an R language package. R is a common programming language used within the statistical and scientific computing communities and the R WhiteboxTools package targets these groups. Prof. Qiusheng Wu, at Binghamton University (SUNY) maintains the R package.
Installation
WhiteboxTools is available on R-Forge and can be installed with the command:
install.packages("whitebox", repos="http://R-Forge.R-project.org")
You can alternatively install the development version of the R package whitebox from the GitHub repository as follows:
if (!require(devtools)) install.packages('devtools')
devtools::install_github("giswqs/whiteboxR")
You will also need to make sure your machine is able to build packages from source. See Package Development Prerequisites for the tools needed for your operating system.
Usage
A complete list of functions available in the whitebox R package can be found within the GitHub repository. A comprehensive demonstration, complete with detailed examples, is also available from this site.
About WhiteboxTools
library(whitebox)
# Prints the whitebox-tools help...a listing of available commands
print(wbt_help())
# Prints the whitebox-tools license
print(wbt_license())
# Prints the whitebox-tools version
print(wbt_version())
# Prints the toolbox for a specific tool.
print(wbt_toolbox())
# List all available tools in whitebox-tools
print(wbt_list_tools())
# Lists tools with 'lidar' in tool name or description.
print(wbt_list_tools("lidar"))
# Prints the help for a specific tool.
print(wbt_tool_help("lidar_info"))
# Retrieves the tool parameter descriptions for a specific tool.
print(wbt_tool_parameters("slope"))
# View the source code for a specific tool on the source code repository.
print(wbt_view_code("breach_depressions"))
How to run tools?
Tool names in the whitebox R package can be called using the snake_case (e.g. lidar_info). A comprehensive list of all available function tools can be found on the package repository site. For example:
library(whitebox)
# Set input raster DEM file
dem <- system.file("extdata", "DEM.tif", package="whitebox")
# Run tools
feature_preserving_denoise(dem, "./smoothed.tif", filter=9)
breach_depressions("./smoothed.tif", "./breached.tif")
d_inf_flow_accumulation(dem, "./flow_accum.tif", verbose_mode=FALSE)