WhiteboxTools
There is some big WhiteboxTools news on the way. See here for more details.
WhiteboxTools is an advanced geospatial 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.
- Contains more than 445 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.
- Small stand-alone application with no external dependencies, making installation as easy as downloading the 8Mb zip file and decompressing it.
- Simple yet powerful Python scripting interface that allows users to develop custom scripted workflows.
- Embed WhiteboxTools functions into hetergenous scripting environments along with ArcPy, GDAL, and other geoprocessing libraries.
- Serves as an analytical back-end for other GIS and remote sensing software (e.g. the QGIS Whitebox for Processing plugin).
- Permissive MIT open-source license allows for ready integration with other software.
- Transparent software philosopy allows for easy source code inspection and rapid innovation and development.
See Download to obtain a copy of the WhiteboxTools software for your system.
What can WhiteboxTools do?
WhiteboxTools can be used to perform common geographical information systems (GIS) analysis operations, such as cost-distance analysis, distance buffering, and raster reclassification. Remote sensing and image processing tasks include image enhancement (e.g. panchromatic sharpening, contrast adjustments), image mosaicing, numerous filtering operations, simple classification (k-means), and common image transformations. WhiteboxTools also contains advanced tooling for spatial hydrological analysis (e.g. flow-accumulation, watershed delineation, stream network analysis, sink removal), terrain analysis (e.g. common terrain indices such as slope, curvatures, wetness index, hillshading; hypsometric analysis; multi-scale topographic position analysis), and LiDAR data processing. LiDAR point clouds can be interrogated (LidarInfo, LidarHistogram), segmented, tiled and joined, analyized for outliers, interpolated to rasters (DEMs, intensity images), and ground-points can be classified or filtered. WhiteboxTools is not a cartographic or spatial data visualization package; instead it is meant to serve as an analytical backend for other data visualization software (GIS).
For example, you may use WhiteboxTools to smooth a DEM without blurring important edges using the FeaturePreservingSmoothing tool.
For a complete listing of the available tools, see the WhiteboxTools User Manual.
What does WhiteboxTools look like?
The Python interface for WhiteboxTools makes geoprocessing straightforward even with a beginner's level knowledge of scripting.
from WBT.whitebox_tools import WhiteboxTools
# Set up the environment
wbt = WhiteboxTools()
wbt.work_dir = "/path/to/data/"
# Call some tools, do some work
wbt.feature_preserving_denoise("DEM.tif", "smoothed.tif", filter=9)
wbt.breach_depressions("smoothed.tif", "breached.tif")
wbt.d_inf_flow_accumulation("breached.tif", "flow_accum.tif")
Most tools output geospatial data in various raster, vector, and LiDAR data formats. Tools that output data in tabular and chart form, produce attractive, interactive html-based outputs, such as this interactive hypsometric integral:
The output above can be created with the following script:
from WBT.whitebox_tools import WhiteboxTools
wbt = WhiteboxTools()
wbt.work_dir = "/path/to/data/"
wbt.hypsometric_analysis("DEM.tif","hypso.html")
Getting Help
In additiona to the User Manual, Whitebox users can post their questions on the Google Group.
Integrating WhiteboxTools into your project
Although WhiteboxTools was originally intended to serve as a source of plugin tools for the Whitebox GAT open-source GIS project, the tools contained in the command-line library are stand-alone and can run outside of the larger Whitebox GAT project. See Usage for further details. There have been a large number of requests to call Whitebox GAT tools and functionality from outside of the Whitebox user-interface, for example, from Python automation scripts. WhiteboxTools is intended to meet these usage requirements. A simple example Python script that calls various functions of the WhiteboxTools command-line program can be found here. The WhiteboxTools Runner is an example of a more elaborate Python-based user-interface for interacting with the WhiteboxTools library.
The WhiteboxTools project has been developed using a permissive MIT license, which allows for the tools to be readily incorporated into other GIS software. It is our intent to make these high-quality geospatial tools available to other open-source GIS projects. To this end, WhiteboxTools is capable of reading and writing several common raster data formats (including GeoTiff) and reading/writing LiDAR data in LAS file format, including zip-compressed LAS.