What is WhiteboxTools?
WhiteboxTools is an advanced geospatial software package and a data analysis platform developed at the University of Guelph’s Geomorphometry and Hydrogeomatics Research Group (GHRG). The project began in January 2017 and quickly evolved in terms of its analytical capabilities. Some of WhiteboxTools features include:
- Contains more than 450 tools for processing various types of geospatial data
- Many tools operate in parallel, taking full advantage of your multi-core processor.
- Written in the safe and cross-platform systems programming language Rust and compiled to highly efficient native code. No virtual machine or interpreter required is needed to run WhiteboxTools.
- Small stand-alone application with no external dependencies, making installation as easy as downloading the small zip file and decompressing it.
- Simple yet powerful Python scripting interface that allows users to develop custom scripted workflows
- Embed WhiteboxTools functions into hetergeneous scripting environments along with ArcPy, GDAL, and other geoprocessing libraries.
- Serves as an analytical back-end for other GIS, remote sensing, and geospatial software (e.g. the QGIS Whitebox for Processing plugin). See more on the many front-ends developed for WhiteboxTools here.
- Permissive MIT open-source license allows for ready integration with other software.
What can WhiteboxTools do?
WhiteboxTools contains advanced tooling for spatial hydrological analysis (e.g. flow-accumulation, watershed delineation, stream network analysis, sink removal)
WhiteboxTools contains tools for terrain analysis for calculating common terrain indices such as slope, curvatures, wetness index, hillshading; hypsometric analysis; multi-scale topographic position analysis.
LiDAR point clouds can be interrogated (LidarInfo, LidarHistogram), segmented, tiled and joined, analyzed for outliers, interpolated to rasters (DEMs, intensity images), and ground-points can be classified or filtered.
WhiteboxTools is capable of preforming remote sensing and image processing tasks include image enhancement, image mosaicing, filtering operations, simple classification (k-means), and common image transformations.
WhiteboxTools can be used to perform common geographical information systems (GIS) analysis operations, such as cost-distance analysis, distance buffering, raster reclassification and many others.
WhiteboxTools contains tools to process, clean, and map yield data.
Take a look at what it can do
Here are some outputs from a few tools in the WhiteboxTools
Interested in our WhiteboxTools Extensions?
Read more about the tools and see what they can do
Integrating into your workflow
Many front-ends have been developed by open-source developers within the wider WBT community that have allowed for the seamless integration of WhiteboxTools into common GIS software. Note: with the exception of the Python scripting interface, Whitebox Geospatial Inc. is not responsible for developing these front-ends and are unable to comment on the working condition.
Whitebox Runner is Whitebox Geospatial's tier-one front end for running all tools contained within the WhiteboxTools library. The user-interface uses Python's TkInter GUI library and is cross-platform. Runner is the only front end maintained by Whitebox Geospatial.
Python Scripting Interface
Python users are able to create powerful stand-alone geospatial applications and workflow-automation scripts using WhiteboxTools functionality.
Nim Scripting Interface
A Nim-based API for using the WhiteboxTools geospatial data analysis library.
The WhiteboxTools library is accessible from an R language package called WhiteboxR.
WhiteboxTools functionality is also accessed conveniently through the ArcGIS Python Toolbox for WhiteboxTools.
The whiteboxgui Python package is a Jupyter frontend for WhiteboxTools
The whitebox Python package is built on WhiteboxTools.
QGIS Plugin: Whitebox Description Files
It has come to our attention that the WhiteboxTools QGIS plugin is one of the most popular front-ends for WBT users. This is no surprise as the number of QGIS users grows daily. However, at Whitebox Geospatial Inc., we would like to recognize the hard work of Alex Bruy, who created and maintains this open-source front end.
Recently we have become aware that some of the tools that are contained in the WhiteboxTools library do not appear in the QGIS plugin. We have been in talks with Alex and he has told us that a solution is on the horizon. Alex and Alex’s team at QGIS are working hard to deliver a new solution that will fix this issue. However, in the short term, we have found a short term solution to allow for the full WhiteboxTools open core and our WhiteboxTools Extensions to be available in QGIS. While this solution is not meant to be a permanent fix, it is meant to serve as a temporary fix while Alex finalizes a more complete solution.
Our short term solution is that we have produced an updated description file for each tool in the WhiteboxTools open-core and the WhiteboxTools Extensions. Attached below is a zip file with all the descriptions for all 488 tools in the WhiteboxTools library. In addition, please follow the short tutorial down below on how to update the description files in your QGIS environment. After completing these steps, you will be able to see all of the tools contained in WBT, including those in the various extensions. Of course, to use the extension tools, you will need an active license, see here for more details.
Download the zip files (.txt) for all 487 WhiteboxTools tool descriptions.
2. Open QGIS
Open QGIS on your machine. Please note this solution only works on the QGIS LTR (3.16) or higher. please update your QGIS to 3.16 prior to completing the next step.
3. Open Active Profile Folder
From the menu, select Settings > User profiles > Open Active Profile Folder. A folder should be opened after selection
4. Open Descriptions Folder
Within the open folder, navigate to Python > Plugins > processing_wbt > descriptions.
Delete all files in the descriptions folder
6. Replace and Relaunch
Copy the contents of the downloaded zip file (i.e. the *.txt files) into the descriptions folder. After that, close and re-launch QGIS.