Introduction

What is Whitebox Workflows for Python?

Whitebox Workflows (WbW) is a Python library for advanced geoprocessing, including more than 400 functions for GIS and remote sensing analysis operations and for for manipulating common types of raster, vector and LiDAR geospatial data. Learn more about WbW at www.whiteboxgeo.com.

WbW allows you to write Python scripts for automated data processing in areas such as geographical information systems (GIS), remote sensing (image processing and LiDAR point cloud processing), digital elevation model (DEM) analysis, spatial hydrology, stream network analysis, and many related spatial analysis fields. WbW is developed at Whitebox Geospatial Inc, a Canadian-based geomatics company with deep roots in the geospatial industry and academia (Whitebox started at the University of Guelph).

While WbW is free for use, any financial support that that you can provide the project is greatly appreciated. You can also support the project through the purchase of a license for the professional-tier product, Whitebox Workflows for Python Professional (WbW-Pro), which includes many additional geoprocessing functions.

The WbW codebase is based on the open-source project WhiteboxTools Open Core (WbOC), also developed at Whitebox Geospatial Inc. Compared with WbOC, WbW has a number of advantages for Python based geoprocessing. The largest difference between the two projects is that WbW is compiled as a Python native extension module, much like NumPy and SciPy, whereas WbOC is a command-line application. Because WbW is a Python extension module, it affords a much deeper level of interaction with geospatial data, allowing users to manipulate raster, vector, and lidar data objects directly. This reduces the need to read/write files considerably, significantly improving the performance of complex workflows with many intermediate steps and reducing the wear on system hardware.

Interacting directly with spatial objects also means that WbW has a more natural scripting style, providing a much richer geoprocessing environment. For example, you can use Python directly for raster map algebra, rather than a raster calculator or individual tools (e.g. add, divide, etc.):
result = (raster1 + raster2) / 2.0

WbW also has an improved memory model for raster data. With WbOC, raster data are always stored in memory as 64-bit floats, which can lead to large memory requirements. WbW, however, stores rasters in computer memory using their native data format; a raster storing 16-bit integers or 32-bit floating point values will require substantially less memory.

Unlike the WbOC, WbW is not open-source, however, it is freeware and does not require you to purchased a license to use. In addition to the standard version of WbW there is also a professional-tier verison called Whitebox Workflows for Python Professional (WbW-Pro). A license for WbW-Pro, which can be purchased from www.whiteboxgeo.com, allows users to access dozens of extra functions for advanced geospatial analysis.