# whitebox Tool Metadata

# `whitebox` Tool Metadata

This vignette provides an introduction to the data sets included in the `whitebox` package. These data sets contain names, arguments and other metadata for tools available in WhiteboxTools.

### What version of WhiteboxTools are these data sets generated from?

- Current version: 2.3.0

Internal data sets and functions defined in the R package correspond to tool names available in the most recent version of WhiteboxTools. Data sets are not dynamically generated from your WhiteboxTools installation. Relatively recent versions of WhiteboxTools should be supported backward-compatibly, though any newer functionality will not be usable.

## WhiteboxTools Tool Names and R Function Names

The first data set describes tool names in WhiteboxTools and the corresponding exported function in the R package, along with the WhiteboxTools Toolbox name and a brief description.

    data("wbttools", package = "whitebox")

    str(wbttools)
    #> 'data.frame':    545 obs. of  8 variables:
    #>  $ tool_name    : chr  "AbsoluteValue" "AccumulationCurvature" "AdaptiveFilter" "Add" ...
    #>  $ function_name: chr  "wbt_absolute_value" "wbt_accumulation_curvature" "wbt_adaptive_filter" "wbt_add" ...
    #>  $ toolbox_name : chr  "Math and Stats Tools" "Geomorphometric Analysis" "Image Processing Tools" "Math and Stats Tools" ...
    #>  $ label        : chr  "Absolute Value" "Accumulation Curvature" "Adaptive Filter" "Add" ...
    #>  $ description  : chr  "Calculates the absolute value of every cell in a raster." "This tool calculates accumulation curvature from an input DEM." "Performs an adaptive filter on an image." "Performs an addition operation on two rasters or a raster and a constant value." ...
    #>  $ github       : chr  "https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/math_stat_analysis/abs.rs" "Source code is unavailable due to proprietary license." "https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/image_analysis/adaptive_filter.rs" "https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/math_stat_analysis/add.rs" ...
    #>  $ book         : chr  "https://www.whiteboxgeo.com/manual/wbt_book/available_tools/mathand_stats_tools.html#AbsoluteValue" "https://www.whiteboxgeo.com/manual/wbt_book/available_tools/geomorphometric_analysis.html#AccumulationCurvature" "https://www.whiteboxgeo.com/manual/wbt_book/available_tools/image_processing_tools.html#AdaptiveFilter" "https://www.whiteboxgeo.com/manual/wbt_book/available_tools/mathand_stats_tools.html#Add" ...
    #>  $ is_extension : logi  FALSE TRUE FALSE FALSE FALSE FALSE ...
    #>  - attr(*, "version")= chr "2.3.0"

The `wbttools` data set is a data.frame with 545 tools and 7 variables

- `"tool_name"` - WhiteboxTools tool name

- `"function_name"` - R function tool name

- `"toolbox_name"` - WhiteboxTools toolbox name

- `"label"` - WhiteboxTools tool label

- `"description"` - Brief description

- `"github"` - GitHub link

- `"book"` - Reference manual link

- `"is_extension"` - Tool is part of General Toolset Extension (GTE), as opposed to the “open core”

    head(wbttools)
    #>                    tool_name                      function_name
    #> 1              AbsoluteValue                 wbt_absolute_value
    #> 2      AccumulationCurvature         wbt_accumulation_curvature
    #> 3             AdaptiveFilter                wbt_adaptive_filter
    #> 4                        Add                            wbt_add
    #> 5 AddPointCoordinatesToTable wbt_add_point_coordinates_to_table
    #> 6            AggregateRaster               wbt_aggregate_raster
    #>               toolbox_name                          label
    #> 1     Math and Stats Tools                 Absolute Value
    #> 2 Geomorphometric Analysis         Accumulation Curvature
    #> 3   Image Processing Tools                Adaptive Filter
    #> 4     Math and Stats Tools                            Add
    #> 5               Data Tools Add Point Coordinates To Table
    #> 6             GIS Analysis               Aggregate Raster
    #>                                                                                                    description
    #> 1                                                     Calculates the absolute value of every cell in a raster.
    #> 2                                               This tool calculates accumulation curvature from an input DEM.
    #> 3                                                                     Performs an adaptive filter on an image.
    #> 4                              Performs an addition operation on two rasters or a raster and a constant value.
    #> 5 Modifies the attribute table of a point vector by adding fields containing each point's X and Y coordinates.
    #> 6                                                                   Aggregates a raster to a lower resolution.
    #>                                                                                                                              github
    #> 1                    https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/math_stat_analysis/abs.rs
    #> 2                                                                            Source code is unavailable due to proprietary license.
    #> 3            https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/image_analysis/adaptive_filter.rs
    #> 4                    https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/math_stat_analysis/add.rs
    #> 5 https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/data_tools/add_point_coordinates_to_table.rs
    #> 6             https://github.com/jblindsay/whitebox-tools/blob/master/whitebox-tools-app/src/tools/gis_analysis/aggregate_raster.rs
    #>                                                                                                              book
    #> 1              https://www.whiteboxgeo.com/manual/wbt_book/available_tools/mathand_stats_tools.html#AbsoluteValue
    #> 2 https://www.whiteboxgeo.com/manual/wbt_book/available_tools/geomorphometric_analysis.html#AccumulationCurvature
    #> 3          https://www.whiteboxgeo.com/manual/wbt_book/available_tools/image_processing_tools.html#AdaptiveFilter
    #> 4                        https://www.whiteboxgeo.com/manual/wbt_book/available_tools/mathand_stats_tools.html#Add
    #> 5          https://www.whiteboxgeo.com/manual/wbt_book/available_tools/data_tools.html#AddPointCoordinatesToTable
    #> 6                   https://www.whiteboxgeo.com/manual/wbt_book/available_tools/gis_analysis.html#AggregateRaster
    #>   is_extension
    #> 1        FALSE
    #> 2         TRUE
    #> 3        FALSE
    #> 4        FALSE
    #> 5        FALSE
    #> 6        FALSE

The R function naming style differs from the tool names in WhiteboxTools, but the core words are the same.

R function names are derived from the WhiteboxTools name as follows:

1. `PascalCase` tool names change to `snake_case`

2. All R function names get the prefix `wbt_`

For example, `StreamSlopeContinuous` in WhiteboxTools becomes `wbt_stream_slope_continuous()` in R.

## WhiteboxTools Tool and Parameter Names

The second data set provides details about the available function arguments by tool name.

    data("wbttoolparameters", package = "whitebox")

The `wbttoolparameters` data set is a data.frame with 2220 parameters and 13 variables:

- `"tool_name"` - WhiteboxTools tool name

- `"function_name"` - R function name

- `"toolbox_name"` - WhiteboxTools toolbox name

- `"name"` - WhiteboxTools tool parameter name

- `"flags"` - flags used to specify parameter on command line; comma-separated

- `"description"` - parameter description

- `"default_value"` - parameter default value, if any

- `"optional"` - parameter “optional” flag; note that some combination of optional parameters may be required for certain conditions

- `"parameter_class"` - parameter type

- `"parameter_detail"` - parameter details; character: data type followed by colon and more specifics, For OptionList possible values, comma-separated (if defined)

- `"is_input"` - logical. Classification of ‘input’ parameters

- `"is_output"` - logical. Classification of ‘output’ parameters

- `"argument_name"` - labels for selected subset of `"flags"` used as R function argument names for `wbt_` functions

    head(wbttoolparameters)
    #>               tool_name              function_name             toolbox_name
    #> 1         AbsoluteValue         wbt_absolute_value     Math and Stats Tools
    #> 2         AbsoluteValue         wbt_absolute_value     Math and Stats Tools
    #> 3 AccumulationCurvature wbt_accumulation_curvature Geomorphometric Analysis
    #> 4 AccumulationCurvature wbt_accumulation_curvature Geomorphometric Analysis
    #> 5 AccumulationCurvature wbt_accumulation_curvature Geomorphometric Analysis
    #> 6 AccumulationCurvature wbt_accumulation_curvature Geomorphometric Analysis
    #>                        name       flags
    #> 1                Input File  -i,--input
    #> 2               Output File -o,--output
    #> 3          Input Raster DEM    -i,--dem
    #> 4       Output Raster Image -o,--output
    #> 5 Log-transform the output?       --log
    #> 6                  Z-factor   --zfactor
    #>                                description default_value optional
    #> 1                       Input raster file.          <NA>    FALSE
    #> 2                      Output raster file.          <NA>    FALSE
    #> 3       Name of the input raster DEM file.          <NA>    FALSE
    #> 4    Name of the output raster image file.          <NA>    FALSE
    #> 5 Display output values using a log-scale.         false     TRUE
    #> 6                     Z conversion factor.           1.0     TRUE
    #>   parameter_class parameter_detail is_input is_output argument_name
    #> 1    ExistingFile           Raster     TRUE     FALSE         input
    #> 2         NewFile           Raster    FALSE      TRUE        output
    #> 3    ExistingFile           Raster     TRUE     FALSE           dem
    #> 4         NewFile           Raster    FALSE      TRUE        output
    #> 5         Boolean          Boolean    FALSE     FALSE           log
    #> 6           Float            Float    FALSE     FALSE       zfactor

Several fields in this table such as `flags` and `parameter_type` are “flattened” relative to the nested `wbt_tool_parameters()` output.

The nested `parameter_type` from the JSON result is replaced with two variables in the data set: `parameter_class` and `parameter_details`

This parameter data.frame is useful to construct your own functions with `wbt_run_tool()` or for inspecting the types of tools that can be run on particular data types.

    str(wbttoolparameters, max.level = 1)
    #> 'data.frame':    2220 obs. of  13 variables:
    #>  $ tool_name       : chr  "AbsoluteValue" "AbsoluteValue" "AccumulationCurvature" "AccumulationCurvature" ...
    #>  $ function_name   : chr  "wbt_absolute_value" "wbt_absolute_value" "wbt_accumulation_curvature" "wbt_accumulation_curvature" ...
    #>  $ toolbox_name    : chr  "Math and Stats Tools" "Math and Stats Tools" "Geomorphometric Analysis" "Geomorphometric Analysis" ...
    #>  $ name            : chr  "Input File" "Output File" "Input Raster DEM" "Output Raster Image" ...
    #>  $ flags           : chr  "-i,--input" "-o,--output" "-i,--dem" "-o,--output" ...
    #>  $ description     : chr  "Input raster file." "Output raster file." "Name of the input raster DEM file." "Name of the output raster image file." ...
    #>  $ default_value   : chr  NA NA NA NA ...
    #>  $ optional        : logi  FALSE FALSE FALSE FALSE TRUE TRUE ...
    #>  $ parameter_class : chr  "ExistingFile" "NewFile" "ExistingFile" "NewFile" ...
    #>  $ parameter_detail: chr  "Raster" "Raster" "Raster" "Raster" ...
    #>  $ is_input        : logi  TRUE FALSE TRUE FALSE FALSE FALSE ...
    #>  $ is_output       : logi  FALSE TRUE FALSE TRUE FALSE FALSE ...
    #>  $ argument_name   : chr  "input" "output" "dem" "output" ...
    #>  - attr(*, "version")= chr "2.3.0"

You will find that both `tool_name` and `function_name` are present, so you can look up by whatever is convenient.

The variable `argument_name` is processed to be the subset of `flags` that corresponds to arguments to R functions, which are denoted with `function_name`.

### Example: Finding Tools by Parameter Type

To find the tools that have an “ExistingFile” argument with file type “Raster” we can use `subset()`.

    head(subset(wbttoolparameters, grepl("ExistingFile", parameter_class) & grepl("Raster", parameter_detail)))
    #>                tool_name              function_name             toolbox_name
    #> 1          AbsoluteValue         wbt_absolute_value     Math and Stats Tools
    #> 3  AccumulationCurvature wbt_accumulation_curvature Geomorphometric Analysis
    #> 7         AdaptiveFilter        wbt_adaptive_filter   Image Processing Tools
    #> 12                   Add                    wbt_add     Math and Stats Tools
    #> 13                   Add                    wbt_add     Math and Stats Tools
    #> 16       AggregateRaster       wbt_aggregate_raster             GIS Analysis
    #>                            name      flags                          description
    #> 1                    Input File -i,--input                   Input raster file.
    #> 3              Input Raster DEM   -i,--dem   Name of the input raster DEM file.
    #> 7                    Input File -i,--input                   Input raster file.
    #> 12 Input File Or Constant Value   --input1 Input raster file or constant value.
    #> 13 Input File Or Constant Value   --input2 Input raster file or constant value.
    #> 16                   Input File -i,--input                   Input raster file.
    #>    default_value optional     parameter_class parameter_detail is_input
    #> 1           <NA>    FALSE        ExistingFile           Raster     TRUE
    #> 3           <NA>    FALSE        ExistingFile           Raster     TRUE
    #> 7           <NA>    FALSE        ExistingFile           Raster     TRUE
    #> 12          <NA>    FALSE ExistingFileOrFloat           Raster     TRUE
    #> 13          <NA>    FALSE ExistingFileOrFloat           Raster     TRUE
    #> 16          <NA>    FALSE        ExistingFile           Raster     TRUE
    #>    is_output argument_name
    #> 1      FALSE         input
    #> 3      FALSE           dem
    #> 7      FALSE         input
    #> 12     FALSE        input1
    #> 13     FALSE        input2
    #> 16     FALSE         input

## Appendix: Tables of Function Names by Toolbox

The remainder of this vignette is tables of R function names and tool descriptions from `wbttoolparameters`, organized by WhiteboxTools toolbox/extension name.

### Data Tools

Toolbox: Data Tools
Function Name | Description
--- | ---
`wbt_add_point_coordinates_to_table()` | Modifies the attribute table of a point vector by adding fields containing each point’s X and Y coordinates.
`wbt_clean_vector()` | Removes null features and lines/polygons with fewer than the required number of vertices.
`wbt_convert_nodata_to_zero()` | Converts nodata values in a raster to zero.
`wbt_convert_raster_format()` | Converts raster data from one format to another.
`wbt_csv_points_to_vector()` | Converts a CSV text file to vector points.
`wbt_export_table_to_csv()` | Exports an attribute table to a CSV text file.
`wbt_fix_dangling_arcs()` | This tool fixes undershot and overshot arcs, two common topological errors, in an input vector lines file.
`wbt_join_tables()` | Merge a vector’s attribute table with another table based on a common field.
`wbt_lines_to_polygons()` | Converts vector polylines to polygons.
`wbt_merge_table_with_csv()` | Merge a vector’s attribute table with a table contained within a CSV text file.
`wbt_merge_vectors()` | Combines two or more input vectors of the same ShapeType creating a single, new output vector.
`wbt_modify_no_data_value()` | Modifies nodata values in a raster.
`wbt_multi_part_to_single_part()` | Converts a vector file containing multi-part features into a vector containing only single-part features.
`wbt_new_raster_from_base()` | Creates a new raster using a base image.
`wbt_polygons_to_lines()` | Converts vector polygons to polylines.
`wbt_print_geo_tiff_tags()` | Prints the tags within a GeoTIFF.
`wbt_raster_to_vector_lines()` | Converts a raster lines features into a vector of the POLYLINE shapetype
`wbt_raster_to_vector_points()` | Converts a raster dataset to a vector of the POINT shapetype.
`wbt_raster_to_vector_polygons()` | Converts a raster dataset to a vector of the POLYGON shapetype.
`wbt_reinitialize_attribute_table()` | Reinitializes a vector’s attribute table deleting all fields but the feature ID (FID).
`wbt_remove_polygon_holes()` | Removes holes within the features of a vector polygon file.
`wbt_remove_raster_polygon_holes()` | Removes polygon holes, or ‘donut-holes’, from raster polygons.
`wbt_set_nodata_value()` | Assign the NoData value for an input image.
`wbt_single_part_to_multi_part()` | Converts a vector file containing multi-part features into a vector containing only single-part features.
`wbt_vector_lines_to_raster()` | Converts a vector containing polylines into a raster.
`wbt_vector_points_to_raster()` | Converts a vector containing points into a raster.
`wbt_vector_polygons_to_raster()` | Converts a vector containing polygons into a raster.

### GIS Analysis

Toolbox: GIS Analysis
Function Name | Description
--- | ---
`wbt_aggregate_raster()` | Aggregates a raster to a lower resolution.
`wbt_average_overlay()` | Calculates the average for each grid cell from a group of raster images.
`wbt_block_maximum_gridding()` | Creates a raster grid based on a set of vector points and assigns grid values using a block maximum scheme.
`wbt_block_minimum_gridding()` | Creates a raster grid based on a set of vector points and assigns grid values using a block minimum scheme.
`wbt_boundary_shape_complexity()` | Calculates the complexity of the boundaries of raster polygons.
`wbt_buffer_raster()` | Maps a distance-based buffer around each non-background (non-zero/non-nodata) grid cell in an input image.
`wbt_centroid()` | Calculates the centroid, or average location, of raster polygon objects.
`wbt_centroid_vector()` | Identifies the centroid point of a vector polyline or polygon feature or a group of vector points.
`wbt_clip()` | Extract all the features, or parts of features, that overlap with the features of the clip vector.
`wbt_clip_raster_to_polygon()` | Clips a raster to a vector polygon.
`wbt_clump()` | Groups cells that form discrete areas, assigning them unique identifiers.
`wbt_compactness_ratio()` | Calculates the compactness ratio (A/P), a measure of shape complexity, for vector polygons.
`wbt_construct_vector_tin()` | Creates a vector triangular irregular network (TIN) for a set of vector points.
`wbt_cost_allocation()` | Identifies the source cell to which each grid cell is connected by a least-cost pathway in a cost-distance analysis.
`wbt_cost_distance()` | Performs cost-distance accumulation on a cost surface and a group of source cells.
`wbt_cost_pathway()` | Performs cost-distance pathway analysis using a series of destination grid cells.
`wbt_count_if()` | Counts the number of occurrences of a specified value in a cell-stack of rasters.
`wbt_create_hexagonal_vector_grid()` | Creates a hexagonal vector grid.
`wbt_create_plane()` | Creates a raster image based on the equation for a simple plane.
`wbt_create_rectangular_vector_grid()` | Creates a rectangular vector grid.
`wbt_difference()` | Outputs the features that occur in one of the two vector inputs but not both, i.e. no overlapping features.
`wbt_dissolve()` | Removes the interior, or shared, boundaries within a vector polygon coverage.
`wbt_edge_proportion()` | Calculate the proportion of cells in a raster polygon that are edge cells.
`wbt_eliminate_coincident_points()` | Removes any coincident, or nearly coincident, points from a vector points file.
`wbt_elongation_ratio()` | Calculates the elongation ratio for vector polygons.
`wbt_erase()` | Removes all the features, or parts of features, that overlap with the features of the erase vector polygon.
`wbt_erase_polygon_from_raster()` | Erases (cuts out) a vector polygon from a raster.
`wbt_euclidean_allocation()` | Assigns grid cells in the output raster the value of the nearest target cell in the input image, measured by the Shih and Wu (2004) Euclidean distance transform.
`wbt_euclidean_distance()` | Calculates the Shih and Wu (2004) Euclidean distance transform.
`wbt_extend_vector_lines()` | Extends vector lines by a specified distance.
`wbt_extract_nodes()` | Converts vector lines or polygons into vertex points.
`wbt_extract_raster_values_at_points()` | Extracts the values of raster(s) at vector point locations.
`wbt_filter_raster_features_by_area()` | Removes small-area features from a raster.
`wbt_find_lowest_or_highest_points()` | Locates the lowest and/or highest valued cells in a raster.
`wbt_find_patch_or_class_edge_cells()` | Finds all cells located on the edge of patch or class features.
`wbt_heat_map()` | Calculates a heat map, or kernel density estimation (KDE), for an input point set.
`wbt_highest_position()` | Identifies the stack position of the maximum value within a raster stack on a cell-by-cell basis.
`wbt_hole_proportion()` | Calculates the proportion of the total area of a polygon’s holes relative to the area of the polygon’s hull.
`wbt_idw_interpolation()` | Interpolates vector points into a raster surface using an inverse-distance weighted scheme.
`wbt_intersect()` | Identifies the parts of features in common between two input vector layers.
`wbt_layer_footprint()` | Creates a vector polygon footprint of the area covered by a raster grid or vector layer.
`wbt_linearity_index()` | Calculates the linearity index for vector polygons.
`wbt_line_intersections()` | Identifies points where the features of two vector line layers intersect.
`wbt_lowest_position()` | Identifies the stack position of the minimum value within a raster stack on a cell-by-cell basis.
`wbt_max_absolute_overlay()` | Evaluates the maximum absolute value for each grid cell from a stack of input rasters.
`wbt_max_overlay()` | Evaluates the maximum value for each grid cell from a stack of input rasters.
`wbt_medoid()` | Calculates the medoid for a series of vector features contained in a shapefile.
`wbt_merge_line_segments()` | Merges vector line segments into larger features.
`wbt_min_absolute_overlay()` | Evaluates the minimum absolute value for each grid cell from a stack of input rasters.
`wbt_minimum_bounding_box()` | Creates a vector minimum bounding rectangle around vector features.
`wbt_minimum_bounding_circle()` | Delineates the minimum bounding circle (i.e. smallest enclosing circle) for a group of vectors.
`wbt_minimum_bounding_envelope()` | Creates a vector axis-aligned minimum bounding rectangle (envelope) around vector features.
`wbt_minimum_convex_hull()` | Creates a vector convex polygon around vector features.
`wbt_min_overlay()` | Evaluates the minimum value for each grid cell from a stack of input rasters.
`wbt_multiply_overlay()` | Calculates the sum for each grid cell from a group of raster images.
`wbt_narrowness_index()` | Calculates the narrowness of raster polygons.
`wbt_natural_neighbour_interpolation()` | Creates a raster grid based on Sibson’s natural neighbour method.
`wbt_nearest_neighbour_gridding()` | Creates a raster grid based on a set of vector points and assigns grid values using the nearest neighbour.
`wbt_patch_orientation()` | Calculates the orientation of vector polygons.
`wbt_percent_equal_to()` | Calculates the percentage of a raster stack that have cell values equal to an input on a cell-by-cell basis.
`wbt_percent_greater_than()` | Calculates the percentage of a raster stack that have cell values greater than an input on a cell-by-cell basis.
`wbt_percent_less_than()` | Calculates the percentage of a raster stack that have cell values less than an input on a cell-by-cell basis.
`wbt_perimeter_area_ratio()` | Calculates the perimeter-area ratio of vector polygons.
`wbt_pick_from_list()` | Outputs the value from a raster stack specified by a position raster.
`wbt_polygon_area()` | Calculates the area of vector polygons.
`wbt_polygonize()` | Creates a polygon layer from two or more intersecting line features contained in one or more input vector line files.
`wbt_polygon_long_axis()` | Used to map the long axis of polygon features.
`wbt_polygon_perimeter()` | Calculates the perimeter of vector polygons.
`wbt_polygon_short_axis()` | Used to map the short axis of polygon features.
`wbt_radial_basis_function_interpolation()` | Interpolates vector points into a raster surface using a radial basis function scheme.
`wbt_radius_of_gyration()` | Calculates the distance of cells from their polygon’s centroid.
`wbt_raster_area()` | Calculates the area of polygons or classes within a raster image.
`wbt_raster_cell_assignment()` | Assign row or column number to cells.
`wbt_raster_perimeter()` | Calculates the perimeters of polygons or classes within a raster image.
`wbt_reclass()` | Reclassifies the values in a raster image.
`wbt_reclass_equal_interval()` | Reclassifies the values in a raster image based on equal-ranges.
`wbt_reclass_from_file()` | Reclassifies the values in a raster image using reclass ranges in a text file.
`wbt_related_circumscribing_circle()` | Calculates the related circumscribing circle of vector polygons.
`wbt_shape_complexity_index()` | Calculates overall polygon shape complexity or irregularity.
`wbt_shape_complexity_index_raster()` | Calculates the complexity of raster polygons or classes.
`wbt_smooth_vectors()` | Smooths a vector coverage of either a POLYLINE or POLYGON base ShapeType.
`wbt_split_vector_lines()` | Used to split a vector line coverage into even-lengthed segments.
`wbt_split_with_lines()` | Splits the lines or polygons in one layer using the lines in another layer.
`wbt_sum_overlay()` | Calculates the sum for each grid cell from a group of raster images.
`wbt_symmetrical_difference()` | Outputs the features that occur in one of the two vector inputs but not both, i.e. no overlapping features.
`wbt_tin_gridding()` | Creates a raster grid based on a triangular irregular network (TIN) fitted to vector points.
`wbt_travelling_salesman_problem()` | Finds approximate solutions to travelling salesman problems, the goal of which is to identify the shortest route connecting a set of locations.
`wbt_union()` | Splits vector layers at their overlaps, creating a layer containing all the portions from both input and overlay layers.
`wbt_update_nodata_cells()` | Replaces the NoData values in an input raster with the corresponding values contained in a second update layer.
`wbt_vector_hex_binning()` | Hex-bins a set of vector points.
`wbt_voronoi_diagram()` | Creates a vector Voronoi diagram for a set of vector points.
`wbt_weighted_overlay()` | Performs a weighted sum on multiple input rasters after converting each image to a common scale. The tool performs a multi-criteria evaluation (MCE).
`wbt_weighted_sum()` | Performs a weighted-sum overlay on multiple input raster images.

### Geomorphometric Analysis

Toolbox: Geomorphometric Analysis
Function Name | Description
--- | ---
`wbt_accumulation_curvature()` | This tool calculates accumulation curvature from an input DEM.
`wbt_aspect()` | Calculates an aspect raster from an input DEM.
`wbt_assess_route()` | This tool assesses a route for slope, elevation, and visibility variation.
`wbt_average_normal_vector_angular_deviation()` | Calculates the circular variance of aspect at a scale for a DEM.
`wbt_breakline_mapping()` | This tool maps breaklines from an input DEM.
`wbt_circular_variance_of_aspect()` | Calculates the circular variance of aspect at a scale for a DEM.
`wbt_contours_from_points()` | Creates a contour coverage from a set of input points.
`wbt_contours_from_raster()` | Derives a vector contour coverage from a raster surface.
`wbt_curvedness()` | This tool calculates curvedness from an input DEM.
`wbt_dem_void_filling()` | This tool can be used to fill the void areas of a DEM using another fill DEM data set.
`wbt_dev_from_mean_elev()` | Calculates deviation from mean elevation.
`wbt_difference_curvature()` | This tool calculates difference curvature from an input DEM.
`wbt_diff_from_mean_elev()` | Calculates difference from mean elevation (equivalent to a high-pass filter).
`wbt_directional_relief()` | Calculates relief for cells in an input DEM for a specified direction.
`wbt_downslope_index()` | Calculates the Hjerdt et al. (2004) downslope index.
`wbt_edge_density()` | Calculates the density of edges, or breaks-in-slope within DEMs.
`wbt_elev_above_pit()` | Calculate the elevation of each grid cell above the nearest downstream pit cell or grid edge cell.
`wbt_elev_percentile()` | Calculates the elevation percentile raster from a DEM.
`wbt_elev_relative_to_min_max()` | Calculates the elevation of a location relative to the minimum and maximum elevations in a DEM.
`wbt_elev_relative_to_watershed_min_max()` | Calculates the elevation of a location relative to the minimum and maximum elevations in a watershed.
`wbt_embankment_mapping()` | Maps and/or removes road embankments from an input fine-resolution DEM.
`wbt_exposure_towards_wind_flux()` | Evaluates hydrologic connectivity within a DEM
`wbt_feature_preserving_smoothing()` | Reduces short-scale variation in an input DEM using a modified Sun et al. (2007) algorithm.
`wbt_fetch_analysis()` | Performs an analysis of fetch or upwind distance to an obstacle.
`wbt_fill_missing_data()` | Fills NoData holes in a DEM.
`wbt_find_ridges()` | Identifies potential ridge and peak grid cells.
`wbt_gaussian_curvature()` | Calculates a mean curvature raster from an input DEM.
`wbt_gaussian_scale_space()` | Uses the fast Gaussian approximation algorithm to produce scaled land-surface parameter measurements from an input DEM.
`wbt_generating_function()` | This tool calculates generating function from an input DEM.
`wbt_geomorphons()` | Computes geomorphon patterns.
`wbt_hillshade()` | Calculates a hillshade raster from an input DEM.
`wbt_horizon_angle()` | Calculates horizon angle (maximum upwind slope) for each grid cell in an input DEM.
`wbt_horizontal_excess_curvature()` | This tool calculates horizontal excess curvature from an input DEM.
`wbt_hypsometrically_tinted_hillshade()` | Creates an colour shaded relief image from an input DEM.
`wbt_hypsometric_analysis()` | Calculates a hypsometric curve for one or more DEMs.
`wbt_local_hypsometric_analysis()` | This tool calculates a local, neighbourhood-based hypsometric integral raster.
`wbt_local_quadratic_regression()` | An implementation of the constrained quadratic regression algorithm using a flexible window size described in Wood (1996).
`wbt_map_off_terrain_objects()` | Maps off-terrain objects in a digital elevation model (DEM).
`wbt_max_anisotropy_dev()` | Calculates the maximum anisotropy (directionality) in elevation deviation over a range of spatial scales.
`wbt_max_anisotropy_dev_signature()` | Calculates the anisotropy in deviation from mean for points over a range of spatial scales.
`wbt_max_branch_length()` | Lindsay and Seibert’s (2013) branch length index is used to map drainage divides or ridge lines.
`wbt_max_difference_from_mean()` | Calculates the maximum difference from mean elevation over a range of spatial scales.
`wbt_max_downslope_elev_change()` | Calculates the maximum downslope change in elevation between a grid cell and its eight downslope neighbors.
`wbt_max_elevation_deviation()` | Calculates the maximum elevation deviation over a range of spatial scales.
`wbt_max_elev_dev_signature()` | Calculates the maximum elevation deviation over a range of spatial scales and for a set of points.
`wbt_maximal_curvature()` | Calculates a mean curvature raster from an input DEM.
`wbt_max_upslope_elev_change()` | Calculates the maximum upslope change in elevation between a grid cell and its eight downslope neighbors.
`wbt_mean_curvature()` | Calculates a mean curvature raster from an input DEM.
`wbt_min_downslope_elev_change()` | Calculates the minimum downslope change in elevation between a grid cell and its eight downslope neighbors.
`wbt_minimal_curvature()` | Calculates a mean curvature raster from an input DEM.
`wbt_multidirectional_hillshade()` | Calculates a multi-direction hillshade raster from an input DEM.
`wbt_multiscale_curvatures()` | This tool calculates several multiscale curvatures and curvature-based indices from an input DEM.
`wbt_multiscale_elevation_percentile()` | Calculates surface roughness over a range of spatial scales.
`wbt_multiscale_roughness()` | Calculates surface roughness over a range of spatial scales.
`wbt_multiscale_roughness_signature()` | Calculates the surface roughness for points over a range of spatial scales.
`wbt_multiscale_std_dev_normals()` | Calculates surface roughness over a range of spatial scales.
`wbt_multiscale_std_dev_normals_signature()` | Calculates the surface roughness for points over a range of spatial scales.
`wbt_multiscale_topographic_position_image()` | Creates a multiscale topographic position image from three DEVmax rasters of differing spatial scale ranges.
`wbt_num_downslope_neighbours()` | Calculates the number of downslope neighbours to each grid cell in a DEM.
`wbt_num_upslope_neighbours()` | Calculates the number of upslope neighbours to each grid cell in a DEM.
`wbt_openness()` | This tool calculates the topographic openness index from an input DEM.
`wbt_pennock_landform_class()` | Classifies hillslope zones based on slope, profile curvature, and plan curvature.
`wbt_percent_elev_range()` | Calculates percent of elevation range from a DEM.
`wbt_plan_curvature()` | Calculates a plan (contour) curvature raster from an input DEM.
`wbt_profile()` | Plots profiles from digital surface models.
`wbt_profile_curvature()` | Calculates a profile curvature raster from an input DEM.
`wbt_relative_aspect()` | Calculates relative aspect (relative to a user-specified direction) from an input DEM.
`wbt_relative_topographic_position()` | Calculates the relative topographic position index from a DEM.
`wbt_remove_off_terrain_objects()` | Removes off-terrain objects from a raster digital elevation model (DEM).
`wbt_ring_curvature()` | This tool calculates ring curvature from an input DEM.
`wbt_rotor()` | This tool calculates rotor from an input DEM.
`wbt_ruggedness_index()` | Calculates the Riley et al.’s (1999) terrain ruggedness index from an input DEM.
`wbt_sediment_transport_index()` | Calculates the sediment transport index.
`wbt_shadow_animation()` | This tool creates an animated GIF of shadows based on an input DEM.
`wbt_shadow_image()` | This tool creates a raster of shadow areas based on an input DEM.
`wbt_shape_index()` | This tool calculates the shape index from an input DEM.
`wbt_slope()` | Calculates a slope raster from an input DEM.
`wbt_slope_vs_aspect_plot()` | This tool creates a slope-aspect relation plot from an input DEM.
`wbt_slope_vs_elevation_plot()` | Creates a slope vs. elevation plot for one or more DEMs.
`wbt_smooth_vegetation_residual()` | This tool can smooth the residual roughness due to vegetation cover in LiDAR DEMs.
`wbt_spherical_std_dev_of_normals()` | Calculates the spherical standard deviation of surface normals for a DEM.
`wbt_standard_deviation_of_slope()` | Calculates the standard deviation of slope from an input DEM.
`wbt_stream_power_index()` | Calculates the relative stream power index.
`wbt_surface_area_ratio()` | Calculates a the surface area ratio of each grid cell in an input DEM.
`wbt_tangential_curvature()` | Calculates a tangential curvature raster from an input DEM.
`wbt_time_in_daylight()` | Calculates the proportion of time a location is not within an area of shadow.
`wbt_topographic_position_animation()` | This tool creates an animated GIF of multi-scale local topographic position (elevation deviation).
`wbt_topo_render()` | This tool creates a pseudo-3D rendering from an input DEM, for the purpose of effective topographic visualization.
`wbt_total_curvature()` | Calculates a total curvature raster from an input DEM.
`wbt_unsphericity()` | This tool calculates the unsphericity curvature from an input DEM.
`wbt_vertical_excess_curvature()` | This tool calculates vertical excess curvature from an input DEM.
`wbt_viewshed()` | Identifies the viewshed for a point or set of points.
`wbt_visibility_index()` | Estimates the relative visibility of sites in a DEM.
`wbt_wetness_index()` | Calculates the topographic wetness index, Ln(A / tan(slope)).

### Hydrological Analysis

Toolbox: Hydrological Analysis
Function Name | Description
--- | ---
`wbt_average_flowpath_slope()` | Measures the average slope gradient from each grid cell to all upslope divide cells.
`wbt_average_upslope_flowpath_length()` | Measures the average length of all upslope flowpaths draining each grid cell.
`wbt_basins()` | Identifies drainage basins that drain to the DEM edge.
`wbt_breach_depressions()` | Breaches all of the depressions in a DEM using Lindsay’s (2016) algorithm. This should be preferred over depression filling in most cases.
`wbt_breach_depressions_least_cost()` | Breaches the depressions in a DEM using a least-cost pathway method.
`wbt_breach_single_cell_pits()` | Removes single-cell pits from an input DEM by breaching.
`wbt_burn_streams_at_roads()` | Burns-in streams at the sites of road embankments.
`wbt_d8_flow_accumulation()` | Calculates a D8 flow accumulation raster from an input DEM or flow pointer.
`wbt_d8_mass_flux()` | Performs a D8 mass flux calculation.
`wbt_d8_pointer()` | Calculates a D8 flow pointer raster from an input DEM.
`wbt_depth_in_sink()` | Measures the depth of sinks (depressions) in a DEM.
`wbt_depth_to_water()` | This tool calculates cartographic depth-to-water (DTW) index.
`wbt_d_inf_flow_accumulation()` | Calculates a D-infinity flow accumulation raster from an input DEM.
`wbt_d_inf_mass_flux()` | Performs a D-infinity mass flux calculation.
`wbt_d_inf_pointer()` | Calculates a D-infinity flow pointer (flow direction) raster from an input DEM.
`wbt_downslope_distance_to_stream()` | Measures distance to the nearest downslope stream cell.
`wbt_downslope_flowpath_length()` | Calculates the downslope flowpath length from each cell to basin outlet.
`wbt_edge_contamination()` | Identifies grid cells within an input DEM that may be impacted by edge contamination for hydrological applications.
`wbt_elevation_above_stream()` | Calculates the elevation of cells above the nearest downslope stream cell.
`wbt_elevation_above_stream_euclidean()` | Calculates the elevation of cells above the nearest (Euclidean distance) stream cell.
`wbt_fd8_flow_accumulation()` | Calculates an FD8 flow accumulation raster from an input DEM.
`wbt_fd8_pointer()` | Calculates an FD8 flow pointer raster from an input DEM.
`wbt_fill_burn()` | Burns streams into a DEM using the FillBurn (Saunders, 1999) method.
`wbt_fill_depressions()` | Fills all of the depressions in a DEM. Depression breaching should be preferred in most cases.
`wbt_fill_depressions_planchon_and_darboux()` | Fills all of the depressions in a DEM using the Planchon and Darboux (2002) method.
`wbt_fill_depressions_wang_and_liu()` | Fills all of the depressions in a DEM using the Wang and Liu (2006) method. Depression breaching should be preferred in most cases.
`wbt_fill_single_cell_pits()` | Raises pit cells to the elevation of their lowest neighbour.
`wbt_find_no_flow_cells()` | Finds grid cells with no downslope neighbours.
`wbt_find_parallel_flow()` | Finds areas of parallel flow in D8 flow direction rasters.
`wbt_flatten_lakes()` | Flattens lake polygons in a raster DEM.
`wbt_flood_order()` | Assigns each DEM grid cell its order in the sequence of inundations that are encountered during a search starting from the edges, moving inward at increasing elevations.
`wbt_flow_accumulation_full_workflow()` | Resolves all of the depressions in a DEM, outputting a breached DEM, an aspect-aligned non-divergent flow pointer, and a flow accumulation raster.
`wbt_flow_length_diff()` | Calculates the local maximum absolute difference in downslope flowpath length, useful in mapping drainage divides and ridges.
`wbt_hillslopes()` | Identifies the individual hillslopes draining to each link in a stream network.
`wbt_hydrologic_connectivity()` | This tool evaluates hydrologic connectivity within a DEM
`wbt_impoundment_size_index()` | Calculates the impoundment size resulting from damming a DEM.
`wbt_insert_dams()` | Calculates the impoundment size resulting from damming a DEM.
`wbt_isobasins()` | Divides a landscape into nearly equal sized drainage basins (i.e. watersheds).
`wbt_jenson_snap_pour_points()` | Moves outlet points used to specify points of interest in a watershedding operation to the nearest stream cell.
`wbt_longest_flowpath()` | Delineates the longest flowpaths for a group of subbasins or watersheds.
`wbt_low_points_on_headwater_divides()` | This tool locates saddle points along ridges within a digital elevation model (DEM)
`wbt_max_upslope_flowpath_length()` | Measures the maximum length of all upslope flowpaths draining each grid cell.
`wbt_max_upslope_value()` | Calculates the maximum upslope value from an input values raster along flowpaths.
`wbt_md_inf_flow_accumulation()` | Calculates an FD8 flow accumulation raster from an input DEM.
`wbt_num_inflowing_neighbours()` | Computes the number of inflowing neighbours to each cell in an input DEM based on the D8 algorithm.
`wbt_qin_flow_accumulation()` | Calculates Qin et al. (2007) flow accumulation.
`wbt_quinn_flow_accumulation()` | Calculates Quinn et al. (1995) flow accumulation.
`wbt_raise_walls()` | Raises walls in a DEM along a line or around a polygon, e.g. a watershed.
`wbt_rho8_flow_accumulation()` | Calculates Fairfield and Leymarie (1991) flow accumulation.
`wbt_rho8_pointer()` | Calculates a stochastic Rho8 flow pointer raster from an input DEM.
`wbt_river_centerlines()` | Maps river centerlines from an input water raster.
`wbt_sink()` | Identifies the depressions in a DEM, giving each feature a unique identifier.
`wbt_snap_pour_points()` | Moves outlet points used to specify points of interest in a watershedding operation to the cell with the highest flow accumulation in its neighbourhood.
`wbt_stochastic_depression_analysis()` | Performs a stochastic analysis of depressions within a DEM.
`wbt_strahler_order_basins()` | Identifies Strahler-order basins from an input stream network.
`wbt_subbasins()` | Identifies the catchments, or sub-basin, draining to each link in a stream network.
`wbt_trace_downslope_flowpaths()` | Traces downslope flowpaths from one or more target sites (i.e. seed points).
`wbt_unnest_basins()` | Extract whole watersheds for a set of outlet points.
`wbt_upslope_depression_storage()` | Estimates the average upslope depression storage depth.
`wbt_watershed()` | Identifies the watershed, or drainage basin, draining to a set of target cells.

### Image Processing Tools

Toolbox: Image Processing Tools
Function Name | Description
--- | ---
`wbt_adaptive_filter()` | Performs an adaptive filter on an image.
`wbt_balance_contrast_enhancement()` | Performs a balance contrast enhancement on a colour-composite image of multispectral data.
`wbt_bilateral_filter()` | A bilateral filter is an edge-preserving smoothing filter introduced by Tomasi and Manduchi (1998).
`wbt_canny_edge_detection()` | This tool performs a Canny edge-detection filter on an input image.
`wbt_change_vector_analysis()` | Performs a change vector analysis on a two-date multi-spectral dataset.
`wbt_closing()` | A closing is a mathematical morphology operation involving an erosion (min filter) of a dilation (max filter) set.
`wbt_conservative_smoothing_filter()` | Performs a conservative-smoothing filter on an image.
`wbt_corner_detection()` | Identifies corner patterns in boolean images using hit-and-miss pattern matching.
`wbt_correct_vignetting()` | Corrects the darkening of images towards corners.
`wbt_create_colour_composite()` | Creates a colour-composite image from three bands of multispectral imagery.
`wbt_diff_of_gaussian_filter()` | Performs a Difference of Gaussian (DoG) filter on an image.
`wbt_direct_decorrelation_stretch()` | Performs a direct decorrelation stretch enhancement on a colour-composite image of multispectral data.
`wbt_diversity_filter()` | Assigns each cell in the output grid the number of different values in a moving window centred on each grid cell in the input raster.
`wbt_edge_preserving_mean_filter()` | Performs a simple edge-preserving mean filter on an input image.
`wbt_emboss_filter()` | Performs an emboss filter on an image, similar to a hillshade operation.
`wbt_evaluate_training_sites()` | This tool can be used to inspect the overlap in spectral signatures of training sites for various classes.
`wbt_fast_almost_gaussian_filter()` | Performs a fast approximate Gaussian filter on an image.
`wbt_flip_image()` | Reflects an image in the vertical or horizontal axis.
`wbt_gamma_correction()` | Performs a gamma correction on an input images.
`wbt_gaussian_contrast_stretch()` | Performs a Gaussian contrast stretch on input images.
`wbt_gaussian_filter()` | Performs a Gaussian filter on an image.
`wbt_generalize_classified_raster()` | Generalizes a raster containing class or object features by removing small features.
`wbt_generalize_with_similarity()` | Generalizes a raster containing class or object features by removing small features using similarity criteria of neighbouring features.
`wbt_high_pass_bilateral_filter()` | Performs a high-pass bilateral filter, by differencing an input image by the bilateral filter by Tomasi and Manduchi (1998).
`wbt_high_pass_filter()` | Performs a high-pass filter on an input image.
`wbt_high_pass_median_filter()` | Performs a high pass median filter on an input image.
`wbt_histogram_equalization()` | Performs a histogram equalization contrast enhancement on an image.
`wbt_histogram_matching()` | Alters the statistical distribution of a raster image matching it to a specified PDF.
`wbt_histogram_matching_two_images()` | Alters the cumulative distribution function of a raster image to that of another image.
`wbt_ihs_to_rgb()` | Converts intensity, hue, and saturation (IHS) images into red, green, and blue (RGB) images.
`wbt_image_segmentation()` | Performs a region-growing based segmentation on a set of multi-spectral images.
`wbt_image_slider()` | This tool creates an image slider from two input images.
`wbt_image_stack_profile()` | Plots an image stack profile (i.e. signature) for a set of points and multispectral images.
`wbt_integral_image()` | Transforms an input image (summed area table) into its integral image equivalent.
`wbt_k_nearest_mean_filter()` | A k-nearest mean filter is a type of edge-preserving smoothing filter.
`wbt_laplacian_filter()` | Performs a Laplacian filter on an image.
`wbt_laplacian_of_gaussian_filter()` | Performs a Laplacian-of-Gaussian (LoG) filter on an image.
`wbt_lee_sigma_filter()` | Performs a Lee (Sigma) smoothing filter on an image.
`wbt_line_detection_filter()` | Performs a line-detection filter on an image.
`wbt_line_thinning()` | Performs line thinning a on Boolean raster image; intended to be used with the RemoveSpurs tool.
`wbt_majority_filter()` | Assigns each cell in the output grid the most frequently occurring value (mode) in a moving window centred on each grid cell in the input raster.
`wbt_maximum_filter()` | Assigns each cell in the output grid the maximum value in a moving window centred on each grid cell in the input raster.
`wbt_mean_filter()` | Performs a mean filter (low-pass filter) on an input image.
`wbt_median_filter()` | Performs a median filter on an input image.
`wbt_min_dist_classification()` | Performs a supervised minimum-distance classification using training site polygons and multi-spectral images.
`wbt_minimum_filter()` | Assigns each cell in the output grid the minimum value in a moving window centred on each grid cell in the input raster.
`wbt_min_max_contrast_stretch()` | Performs a min-max contrast stretch on an input greytone image.
`wbt_mosaic()` | Mosaics two or more images together.
`wbt_mosaic_with_feathering()` | Mosaics two images together using a feathering technique in overlapping areas to reduce edge-effects.
`wbt_normalized_difference_index()` | Calculate a normalized-difference index (NDI) from two bands of multispectral image data.
`wbt_olympic_filter()` | Performs an olympic smoothing filter on an image.
`wbt_opening()` | An opening is a mathematical morphology operation involving a dilation (max filter) of an erosion (min filter) set.
`wbt_panchromatic_sharpening()` | Increases the spatial resolution of image data by combining multispectral bands with panchromatic data.
`wbt_parallelepiped_classification()` | Performs a supervised parallelepiped classification using training site polygons and multi-spectral images.
`wbt_percentage_contrast_stretch()` | Performs a percentage linear contrast stretch on input images.
`wbt_percentile_filter()` | Performs a percentile filter on an input image.
`wbt_piecewise_contrast_stretch()` | Performs a piecewise contrast stretch on an input image.
`wbt_prewitt_filter()` | Performs a Prewitt edge-detection filter on an image.
`wbt_range_filter()` | Assigns each cell in the output grid the range of values in a moving window centred on each grid cell in the input raster.
`wbt_remove_spurs()` | Removes the spurs (pruning operation) from a Boolean line image; intended to be used on the output of the LineThinning tool.
`wbt_resample()` | Resamples one or more input images into a destination image.
`wbt_rgb_to_ihs()` | Converts red, green, and blue (RGB) images into intensity, hue, and saturation (IHS) images.
`wbt_roberts_cross_filter()` | Performs a Robert’s cross edge-detection filter on an image.
`wbt_scharr_filter()` | Performs a Scharr edge-detection filter on an image.
`wbt_sigmoidal_contrast_stretch()` | Performs a sigmoidal contrast stretch on input images.
`wbt_sobel_filter()` | Performs a Sobel edge-detection filter on an image.
`wbt_split_colour_composite()` | Splits an RGB colour composite image into separate multispectral images.
`wbt_standard_deviation_contrast_stretch()` | Performs a standard-deviation contrast stretch on input images.
`wbt_standard_deviation_filter()` | Assigns each cell in the output grid the standard deviation of values in a moving window centred on each grid cell in the input raster.
`wbt_thicken_raster_line()` | Thickens single-cell wide lines within a raster image.
`wbt_tophat_transform()` | Performs either a white or black top-hat transform on an input image.
`wbt_total_filter()` | Performs a total filter on an input image.
`wbt_unsharp_masking()` | An image sharpening technique that enhances edges.
`wbt_user_defined_weights_filter()` | Performs a user-defined weights filter on an image.
`wbt_write_function_memory_insertion()` | Performs a write function memory insertion for single-band multi-date change detection.

### LiDAR Tools

Toolbox: LiDAR Tools
Function Name | Description
--- | ---
`wbt_ascii_to_las()` | Converts one or more ASCII files containing LiDAR points into LAS files.
`wbt_classify_buildings_in_lidar()` | Reclassifies a LiDAR points that lie within vector building footprints.
`wbt_classify_lidar()` | Classify points within a LiDAR point cloud based on point properties.
`wbt_classify_overlap_points()` | Classifies or filters LAS points in regions of overlapping flight lines.
`wbt_clip_lidar_to_polygon()` | Clips a LiDAR point cloud to a vector polygon or polygons.
`wbt_colourize_based_on_class()` | Sets the RGB values of a LiDAR point cloud based on the point classification values.
`wbt_colourize_based_on_point_returns()` | Sets the RGB values of a LiDAR point cloud based on the point returns.
`wbt_erase_polygon_from_lidar()` | Erases (cuts out) a vector polygon or polygons from a LiDAR point cloud.
`wbt_filter_lidar()` | Filters points within a LiDAR point cloud based on point properties.
`wbt_filter_lidar_classes()` | Removes points in a LAS file with certain specified class values.
`wbt_filter_lidar_scan_angles()` | Removes points in a LAS file with scan angles greater than a threshold.
`wbt_find_flightline_edge_points()` | Identifies points along a flightline’s edge in a LAS file.
`wbt_flightline_overlap()` | Reads a LiDAR (LAS) point file and outputs a raster containing the number of overlapping flight-lines in each grid cell.
`wbt_height_above_ground()` | Normalizes a LiDAR point cloud, providing the height above the nearest ground-classified point.
`wbt_individual_tree_detection()` | Identifies points in a LiDAR point cloud that are associated with the tops of individual trees.
`wbt_las_to_ascii()` | Converts one or more LAS files into ASCII text files.
`wbt_las_to_laz()` | This tool converts one or more LAS files into the LAZ format
`wbt_las_to_multipoint_shapefile()` | Converts one or more LAS files into MultipointZ vector Shapefiles. When the input parameter is not specified, the tool grids all LAS files contained within the working directory.
`wbt_las_to_shapefile()` | Converts one or more LAS files into a vector Shapefile of POINT ShapeType.
`wbt_las_to_zlidar()` | Converts one or more LAS files into the zlidar compressed LiDAR data format.
`wbt_laz_to_las()` | This tool converts one or more LAZ files into the LAS format
`wbt_lidar_block_maximum()` | Creates a block-maximum raster from an input LAS file. When the input/output parameters are not specified, the tool grids all LAS files contained within the working directory.
`wbt_lidar_block_minimum()` | Creates a block-minimum raster from an input LAS file. When the input/output parameters are not specified, the tool grids all LAS files contained within the working directory.
`wbt_lidar_classify_subset()` | Classifies the values in one LiDAR point cloud that correspond with points in a subset cloud.
`wbt_lidar_colourize()` | Adds the red-green-blue colour fields of a LiDAR (LAS) file based on an input image.
`wbt_lidar_contour()` | This tool creates a vector contour coverage from an input LiDAR point file.
`wbt_lidar_digital_surface_model()` | Creates a top-surface digital surface model (DSM) from a LiDAR point cloud.
`wbt_lidar_eigenvalue_features()` | Calculate eigenvalue-based metrics from a LiDAR point cloud.
`wbt_lidar_elevation_slice()` | Outputs all of the points within a LiDAR (LAS) point file that lie between a specified elevation range.
`wbt_lidar_ground_point_filter()` | Identifies ground points within LiDAR dataset using a slope-based method.
`wbt_lidar_hex_binning()` | Hex-bins a set of LiDAR points.
`wbt_lidar_hillshade()` | Calculates a hillshade value for points within a LAS file and stores these data in the RGB field.
`wbt_lidar_histogram()` | Creates a histogram of LiDAR data.
`wbt_lidar_idw_interpolation()` | Interpolates LAS files using an inverse-distance weighted (IDW) scheme. When the input/output parameters are not specified, the tool interpolates all LAS files contained within the working directory.
`wbt_lidar_info()` | Prints information about a LiDAR (LAS) dataset, including header, point return frequency, and classification data and information about the variable length records (VLRs) and geokeys.
`wbt_lidar_join()` | Joins multiple LiDAR (LAS) files into a single LAS file.
`wbt_lidar_kappa_index()` | Performs a kappa index of agreement (KIA) analysis on the classifications of two LAS files.
`wbt_lidar_nearest_neighbour_gridding()` | Grids LiDAR files using nearest-neighbour scheme. When the input/output parameters are not specified, the tool grids all LAS files contained within the working directory.
`wbt_lidar_point_density()` | Calculates the spatial pattern of point density for a LiDAR data set. When the input/output parameters are not specified, the tool grids all LAS files contained within the working directory.
`wbt_lidar_point_return_analysis()` | This tool performs a quality control check on the return values of points in a LiDAR file.
`wbt_lidar_point_stats()` | Creates several rasters summarizing the distribution of LAS point data. When the input/output parameters are not specified, the tool works on all LAS files contained within the working directory.
`wbt_lidar_ransac_planes()` | Performs a RANSAC analysis to identify points within a LiDAR point cloud that belong to linear planes.
`wbt_lidar_rbf_interpolation()` | Interpolates LAS files using a radial basis function (RBF) scheme. When the input/output parameters are not specified, the tool interpolates all LAS files contained within the working directory.
`wbt_lidar_remove_duplicates()` | Removes duplicate points from a LiDAR data set.
`wbt_lidar_remove_outliers()` | Removes outliers (high and low points) in a LiDAR point cloud.
`wbt_lidar_rooftop_analysis()` | Identifies roof segments in a LiDAR point cloud.
`wbt_lidar_segmentation()` | Segments a LiDAR point cloud based on differences in the orientation of fitted planar surfaces and point proximity.
`wbt_lidar_segmentation_based_filter()` | Identifies ground points within LiDAR point clouds using a segmentation based approach.
`wbt_lidar_shift()` | Shifts the x,y,z coordinates of a LiDAR file.
`wbt_lidar_sibson_interpolation()` | This tool interpolates one or more LiDAR tiles using Sibson’s natural neighbour method.
`wbt_lidar_thin()` | Thins a LiDAR point cloud, reducing point density.
`wbt_lidar_thin_high_density()` | Thins points from high density areas within a LiDAR point cloud.
`wbt_lidar_tile()` | Tiles a LiDAR LAS file into multiple LAS files.
`wbt_lidar_tile_footprint()` | Creates a vector polygon of the convex hull of a LiDAR point cloud. When the input/output parameters are not specified, the tool works with all LAS files contained within the working directory.
`wbt_lidar_tin_gridding()` | Creates a raster grid based on a Delaunay triangular irregular network (TIN) fitted to LiDAR points.
`wbt_lidar_tophat_transform()` | Performs a white top-hat transform on a Lidar dataset; as an estimate of height above ground, this is useful for modelling the vegetation canopy.
`wbt_modify_lidar()` | Modify points within a LiDAR point cloud based on point properties.
`wbt_normalize_lidar()` | Normalizes a LiDAR point cloud.
`wbt_normal_vectors()` | Calculates normal vectors for points within a LAS file and stores these data (XYZ vector components) in the RGB field.
`wbt_recover_flightline_info()` | Associates LiDAR points by their flightlines.
`wbt_select_tiles_by_polygon()` | Copies LiDAR tiles overlapping with a polygon into an output directory.
`wbt_sort_lidar()` | Sorts LiDAR points based on their properties.
`wbt_split_lidar()` | Splits LiDAR points up into a series of new files based on their properties.
`wbt_zlidar_to_las()` | Converts one or more zlidar files into the LAS data format.

### Machine Learning

Toolbox: Machine Learning
Function Name | Description
--- | ---
`wbt_dbscan()` | Performs a DBSCAN-based unsupervised clustering operation.
`wbt_k_means_clustering()` | Performs a k-means clustering operation on a multi-spectral dataset.
`wbt_knn_classification()` | Performs a supervised k-nearest neighbour classification using training site polygons/points and predictor rasters.
`wbt_knn_regression()` | Performs a supervised k-nearest neighbour regression using training site points and predictor rasters.
`wbt_logistic_regression()` | Performs a logistic regression analysis using training site polygons/points and predictor rasters.
`wbt_modified_k_means_clustering()` | Performs a modified k-means clustering operation on a multi-spectral dataset.
`wbt_random_forest_classification()` | Performs a supervised random forest classification using training site polygons/points and predictor rasters.
`wbt_random_forest_regression()` | Performs a random forest regression analysis using training site data and predictor rasters.
`wbt_svm_classification()` | Performs an SVM binary classification using training site polygons/points and multiple input images.
`wbt_svm_regression()` | Performs a supervised SVM regression analysis using training site points and predictor rasters.

### Math and Stats Tools

Toolbox: Math and Stats Tools
Function Name | Description
--- | ---
`wbt_absolute_value()` | Calculates the absolute value of every cell in a raster.
`wbt_add()` | Performs an addition operation on two rasters or a raster and a constant value.
`wbt_and()` | Performs a logical AND operator on two Boolean raster images.
`wbt_anova()` | Performs an analysis of variance (ANOVA) test on a raster dataset.
`wbt_arc_cos()` | Returns the inverse cosine (arccos) of each values in a raster.
`wbt_arcosh()` | Returns the inverse hyperbolic cosine (arcosh) of each values in a raster.
`wbt_arc_sin()` | Returns the inverse sine (arcsin) of each values in a raster.
`wbt_arc_tan()` | Returns the inverse tangent (arctan) of each values in a raster.
`wbt_arsinh()` | Returns the inverse hyperbolic sine (arsinh) of each values in a raster.
`wbt_artanh()` | Returns the inverse hyperbolic tangent (arctanh) of each values in a raster.
`wbt_atan2()` | Returns the 2-argument inverse tangent (atan2).
`wbt_attribute_correlation()` | Performs a correlation analysis on attribute fields from a vector database.
`wbt_attribute_correlation_neighbourhood_analysis()` | Performs a correlation on two input vector attributes within a neighbourhood search windows.
`wbt_attribute_histogram()` | Creates a histogram for the field values of a vector’s attribute table.
`wbt_attribute_scattergram()` | Creates a scattergram for two field values of a vector’s attribute table.
`wbt_ceil()` | Returns the smallest (closest to negative infinity) value that is greater than or equal to the values in a raster.
`wbt_conditional_evaluation()` | Performs a conditional evaluation (if-then-else) operation on a raster.
`wbt_conditioned_latin_hypercube()` | Implements conditioned Latin Hypercube sampling.
`wbt_cos()` | Returns the cosine (cos) of each values in a raster.
`wbt_cosh()` | Returns the hyperbolic cosine (cosh) of each values in a raster.
`wbt_crispness_index()` | Calculates the Crispness Index, which is used to quantify how crisp (or conversely how fuzzy) a probability image is.
`wbt_cross_tabulation()` | Performs a cross-tabulation on two categorical images.
`wbt_cumulative_distribution()` | Converts a raster image to its cumulative distribution function.
`wbt_decrement()` | Decreases the values of each grid cell in an input raster by 1.0 (see also InPlaceSubtract).
`wbt_divide()` | Performs a division operation on two rasters or a raster and a constant value.
`wbt_equal_to()` | Performs a equal-to comparison operation on two rasters or a raster and a constant value.
`wbt_exp()` | Returns the exponential (base e) of values in a raster.
`wbt_exp2()` | Returns the exponential (base 2) of values in a raster.
`wbt_floor()` | Returns the largest (closest to positive infinity) value that is less than or equal to the values in a raster.
`wbt_greater_than()` | Performs a greater-than comparison operation on two rasters or a raster and a constant value.
`wbt_image_autocorrelation()` | Performs Moran’s I analysis on two or more input images.
`wbt_image_correlation()` | Performs image correlation on two or more input images.
`wbt_image_correlation_neighbourhood_analysis()` | Performs image correlation on two input images neighbourhood search windows.
`wbt_image_regression()` | Performs image regression analysis on two input images.
`wbt_increment()` | Increases the values of each grid cell in an input raster by 1.0. (see also InPlaceAdd)
`wbt_in_place_add()` | Performs an in-place addition operation (input1 += input2).
`wbt_in_place_divide()` | Performs an in-place division operation (input1 /= input2).
`wbt_in_place_multiply()` | Performs an in-place multiplication operation (input1 *= input2).
`wbt_in_place_subtract()` | Performs an in-place subtraction operation (input1 -= input2).
`wbt_integer_division()` | Performs an integer division operation on two rasters or a raster and a constant value.
`wbt_inverse_pca()` | This tool performs an inverse principal component analysis on a series of input component images.
`wbt_is_no_data()` | Identifies NoData valued pixels in an image.
`wbt_kappa_index()` | Performs a kappa index of agreement (KIA) analysis on two categorical raster files.
`wbt_ks_test_for_normality()` | Evaluates whether the values in a raster are normally distributed.
`wbt_less_than()` | Performs a less-than comparison operation on two rasters or a raster and a constant value.
`wbt_list_unique_values()` | Lists the unique values contained in a field within a vector’s attribute table.
`wbt_list_unique_values_raster()` | Lists the unique values contained in a field within a vector’s attribute table.
`wbt_ln()` | Returns the natural logarithm of values in a raster.
`wbt_log10()` | Returns the base-10 logarithm of values in a raster.
`wbt_log2()` | Returns the base-2 logarithm of values in a raster.
`wbt_max()` | Performs a MAX operation on two rasters or a raster and a constant value.
`wbt_min()` | Performs a MIN operation on two rasters or a raster and a constant value.
`wbt_modulo()` | Performs a modulo operation on two rasters or a raster and a constant value.
`wbt_multiply()` | Performs a multiplication operation on two rasters or a raster and a constant value.
`wbt_negate()` | Changes the sign of values in a raster or the 0-1 values of a Boolean raster.
`wbt_not()` | Performs a logical NOT operator on two Boolean raster images.
`wbt_not_equal_to()` | Performs a not-equal-to comparison operation on two rasters or a raster and a constant value.
`wbt_or()` | Performs a logical OR operator on two Boolean raster images.
`wbt_paired_sample_t_test()` | Performs a 2-sample K-S test for significant differences on two input rasters.
`wbt_phi_coefficient()` | This tool performs a binary classification accuracy assessment.
`wbt_power()` | Raises the values in grid cells of one rasters, or a constant value, by values in another raster or constant value.
`wbt_principal_component_analysis()` | Performs a principal component analysis (PCA) on a multi-spectral dataset.
`wbt_quantiles()` | Transforms raster values into quantiles.
`wbt_random_field()` | Creates an image containing random values.
`wbt_random_sample()` | Creates an image containing randomly located sample grid cells with unique IDs.
`wbt_raster_calculator()` | Performs a complex mathematical operations on one or more input raster images on a cell-to-cell basis.
`wbt_raster_histogram()` | Creates a histogram from raster values.
`wbt_raster_summary_stats()` | Measures a rasters min, max, average, standard deviation, num. non-nodata cells, and total.
`wbt_reciprocal()` | Returns the reciprocal (i.e. 1 / z) of values in a raster.
`wbt_rescale_value_range()` | Performs a min-max contrast stretch on an input greytone image.
`wbt_root_mean_square_error()` | Calculates the RMSE and other accuracy statistics.
`wbt_round()` | Rounds the values in an input raster to the nearest integer value.
`wbt_sin()` | Returns the sine (sin) of each values in a raster.
`wbt_sinh()` | Returns the hyperbolic sine (sinh) of each values in a raster.
`wbt_square()` | Squares the values in a raster.
`wbt_square_root()` | Returns the square root of the values in a raster.
`wbt_subtract()` | Performs a differencing operation on two rasters or a raster and a constant value.
`wbt_tan()` | Returns the tangent (tan) of each values in a raster.
`wbt_tanh()` | Returns the hyperbolic tangent (tanh) of each values in a raster.
`wbt_to_degrees()` | Converts a raster from radians to degrees.
`wbt_to_radians()` | Converts a raster from degrees to radians.
`wbt_trend_surface()` | Estimates the trend surface of an input raster file.
`wbt_trend_surface_vector_points()` | Estimates a trend surface from vector points.
`wbt_truncate()` | Truncates the values in a raster to the desired number of decimal places.
`wbt_turning_bands_simulation()` | Creates an image containing random values based on a turning-bands simulation.
`wbt_two_sample_ks_test()` | Performs a 2-sample K-S test for significant differences on two input rasters.
`wbt_wilcoxon_signed_rank_test()` | Performs a 2-sample K-S test for significant differences on two input rasters.
`wbt_xor()` | Performs a logical XOR operator on two Boolean raster images.
`wbt_zonal_statistics()` | Extracts descriptive statistics for a group of patches in a raster.
`wbt_z_scores()` | Standardizes the values in an input raster by converting to z-scores.

### Precision Agriculture

Toolbox: Precision Agriculture
Function Name | Description
--- | ---
`wbt_reconcile_multiple_headers()` | This tool adjusts the crop yield values for data sets collected with multiple headers or combines.
`wbt_recreate_pass_lines()` | This tool can be used to approximate the harvester pass lines from yield points.
`wbt_remove_field_edge_points()` | This tool can be used to remove, or flag, most of the points along the edges from a crop yield data set.
`wbt_yield_filter()` | Filters crop yield values of point data derived from combine harvester yield monitors.
`wbt_yield_map()` | This tool can be used to create a segmented-vector polygon yield map from a set of harvester points.
`wbt_yield_normalization()` | This tool can be used to normalize the yield points for a field.

### Stream Network Analysis

Toolbox: Stream Network Analysis
Function Name | Description
--- | ---
`wbt_distance_to_outlet()` | Calculates the distance of stream grid cells to the channel network outlet cell.
`wbt_extract_streams()` | Extracts stream grid cells from a flow accumulation raster.
`wbt_extract_valleys()` | Identifies potential valley bottom grid cells based on local topolography alone.
`wbt_farthest_channel_head()` | Calculates the distance to the furthest upstream channel head for each stream cell.
`wbt_find_main_stem()` | Finds the main stem, based on stream lengths, of each stream network.
`wbt_hack_stream_order()` | Assigns the Hack stream order to each tributary in a stream network.
`wbt_horton_stream_order()` | Assigns the Horton stream order to each tributary in a stream network.
`wbt_length_of_upstream_channels()` | Calculates the total length of channels upstream.
`wbt_long_profile()` | Plots the stream longitudinal profiles for one or more rivers.
`wbt_long_profile_from_points()` | Plots the longitudinal profiles from flow-paths initiating from a set of vector points.
`wbt_rasterize_streams()` | Rasterizes vector streams based on Lindsay (2016) method.
`wbt_raster_streams_to_vector()` | Converts a raster stream file into a vector file.
`wbt_remove_short_streams()` | Removes short first-order streams from a stream network.
`wbt_repair_stream_vector_topology()` | This tool resolves topological errors and inconsistencies associated with digitized vector streams.
`wbt_shreve_stream_magnitude()` | Assigns the Shreve stream magnitude to each link in a stream network.
`wbt_strahler_stream_order()` | Assigns the Strahler stream order to each link in a stream network.
`wbt_stream_link_class()` | Identifies the exterior/interior links and nodes in a stream network.
`wbt_stream_link_identifier()` | Assigns a unique identifier to each link in a stream network.
`wbt_stream_link_length()` | Estimates the length of each link (or tributary) in a stream network.
`wbt_stream_link_slope()` | Estimates the average slope of each link (or tributary) in a stream network.
`wbt_stream_slope_continuous()` | Estimates the slope of each grid cell in a stream network.
`wbt_topological_stream_order()` | Assigns each link in a stream network its topological order.
`wbt_tributary_identifier()` | Assigns a unique identifier to each tributary in a stream network.
`wbt_vector_stream_network_analysis()` | This tool performs common stream network analysis operations on an input vector stream file.

### Whitebox Utilities

Toolbox: Whitebox Utilities
Function Name | Description
--- | ---
`wbt_install_wb_extension()` | Use to install a Whitebox extension product.
`wbt_launch_wb_runner()` | Opens the Whitebox Runner application.