Releases: jblindsay/whitebox-tools
WhiteboxTools Open Core v2.4.0
Note: Compiled binaries for Windows, macOS, and Linux can be found at: https://www.whiteboxgeo.com/download-whiteboxtools/
Release Notes:
- Updated the build script very extensively. The build process for each of the supported systems now uses GitHub Actions. Note that the Whitebox Runner app is no longer included in the linux build, as Actions issues an OpenSSL error that is challenging to get past.
- Removed the requirement for an input DEM in the VectorStreamNetworkAnalysis tool.
- Fixed a bug in the RepairStreamVectorTopology tool that reversed the direction of some stream arcs.
- Added the CorrectStreamVectorDirection tool.
- Added the ability to preserve all vertices to the RasterStreamsToVector tool.
- Added the ExtractByAttribute tool to filter out vector features by attribute characteristics.
- Added the DeviationFromRegionalDirection tool.
- Added the OtsuThresholding tool, which uses Ostu's method for optimal binary thresholding,
transforming the input image into background and foreground pixels. - Added the TopographicHachures tool.
- Fixed a bug with polygon holes in the RasterToVectorPolygons tool.
- Fixed a bug with the IndividualTreeDetection tool that prevented use of the min_height parameter
when applied in batch mode. - Added the ConvergenceIndex tool.
WhiteboxTools Open Core v2.3.0
Note: Compiled binaries for Windows, macOS, and Linux can be found at: https://www.whiteboxgeo.com/download-whiteboxtools/
Release Notes
- Added the new Whitebox Runner v2.0. This version of WbRunner is an entirely new application with many advancements over the previous version of the WbRunner. It is now written in pure Rust (compared with the old Python TkInter app) using the egui user-interface library. It has a more modern feel, is cross-platform, and has no dependencies (including Python). You can now open multiple tools simultaneously.
- WbRunner is now the preferred way now for installing the Whitebox Toolset Extension (WTE).
- Added the LaunchWbRunner and InstallWbExtension tools so that the Whitebox Runner will be more accessible from other Whitebox frontends. This way users will always have a good fall-back if the frontend is not up-to-date with the WBT backend, since WbRunner is always current with the installed version of WBT.
- Added the IndividualTreeDetection tool for identifying points in a LiDAR point cloud that are associated with the tops of individual trees.
- Added the NormalizeLidar tool for normalizing LiDAR point clouds, i.e., converting their z-values from elevation to height-above-ground.
- Natural Resources Canada (NRCan) has sponsored the open-sourcing of two tools contained in the extension, VectorStreamNetworkAnalysis and RepairStreamVectorTopology. These two tools are are now available in the WbT Open Core.
- Fixed a bug with the LidarShift tool. The tool was calculating the shift in transformed coordinates incorrectly leading to very strange outputs.
- The MultiscaleTopographicPositionImage tool now takes an optional hillshade image as input.
- Lowered the peak memory requirement of the D8FlowAccumulation tool.
- Fixed a bug with the location of the settings.json file when running plugin tools, that sometimes led to the file being located in a top-level directory, and therefore sometimes yielding a permissions error when running on systems without admin rights.
- Fixed a bug with the vector attribute table reader that caused issue with the VectorPolygonsToRaster tool.
- Fixed a bugs in the HorizonAngle and ExposureTowardsWindFlux tools.
- Added a point time interpolation parameter to the LidarNearestNeighbourGridding tool.
- Added the ListUniqueValuesRaster tool.
- Fixed a bug with the SetNodataValue tool, where the raster data type is updated to a signed integer if the background value is negative and the input image has an unsigned data type.
- Added a 'mean' option to the VectorPointsToRaster tool.
WhiteboxTools v2.2.0
Note: Compiled binaries for Windows, macOS, and Linux can be found at: https://www.whiteboxgeo.com/download-whiteboxtools/
Release Notes:
- Added the TravellingSalesmanProblem tool for identifying short routes connecting multiple locations.
- Added the HeatMap tool for performing kernel density estimation (KDE) from vector points.
- Added the MultiplyOverlay tool.
- Added the MaxUpslopeValue tool.
- Added the ConditionedLatinHypercube tool for stratified random sampling (credit Dr. Dan Newman).
- Added the HighPassBilateralFilter tool, useful for emphasizing image texture.
- Fixed a bug with the DirectDecorrelationStretch tool.
- Fixed a bug in the automatic install of the Whitebox extensions that affected Windows users.
- Fixed a bug with the persistence of the compress_rasters parameter. Python users were unable to
turn off the compress flag previously. - Added the option to set and get the maximum number of processors (--max_procs flag) used by WBT in
the Whitebox Python API. - Added the option to output average point density and nominal point spacing to the LidarInfo tool.
- Updated the ClassifyOverlapPoints and FlightlineOverlap tools to use information contained within
the Point Source ID property, rather than a hard-coded time difference threshold previously used. - Fixed an issue that affected many tools when input rasters use either NaN or Inf as NoData values.
- Fixed an issue with the way that NoData values are handled during the euclidean distance transform
that impacted the EuclideanDistance, EuclideanAllocation, BufferRaster, and
ElevationAboveStreamEuclidean tools. - Fixed a bug with the LidarInfo tool that occurred when the user did not specify the mandatory
output parameter along with a non LAS input file. - Fixed a bug with the Truncate tool; the output image was always integer, and therefore it did not
work as expected when using more than zero significant digits. - Fixed a bug with the ConstructVectorTIN tool that resulted in an error when no field data are used.
- Modified the code for writing to the settings.json file so that rather than issuing an error when
the app doesn't have write permission, it simply prints a warning and carries on. - Fixed bugs in the Geomorphons tool (submitted by Dr. Dan Newman).
- Fixed a bug with the writing of PolyLineZ vectors.
- Updated the Hillshade, MultidirectionalHillshade, and RelativeAspect tools to use the more robust
5x5 3rd order bivariate polynomial method of Florinsky (2016) for rectangular grid DEMs, and the
3x3 method, also described by Florinsky (2016), for DEMs in geographic coordinates. This is a large
improvement in accuracy for calculating these surface morphology parameters on geographic coordinates
compared with the 'z-conversion fudge factor' method used previously. - Added support for Apple Silicon; you can now download WhiteboxTools binaries compiled on an M1 Mac.
WhiteboxTools v2.0.0
The most important feature in this release is the addition of support for reading and writing the LAZ compressed LiDAR format for all of the LiDAR tools in WBT.
- Added the RasterCalculator tool for performing complex mathematical operations on input rasters.
- Added the ConditionalEvaluation tool for performing an if-then-else operation on an input raster.
- Added the EdgeContamination tool to identify grid cells for which the upslope area extends beyond the data extent.
- Added the ExposureTowardsWind tool.
- Added the QuinnFlowAccumulation tool to perform a Quinn et al. (1995) flow accumulation operation.
- Added the QinFlowAccumulation tool to perform a Qin et al. (2007) flow accumulation operation.
- Added the Rho8FlowAccumulation tool to perform a Fairfield and Leymarie (1991) flow accumulation operation.
- LidarHistogram now allows a GPS time parameter, which can be useful for determining the number of flightlines in a LiDAR tile.
- Fixed a bug with the Resample tool that created an artifact when resampling to resolutions less than one meter.
- Fixed a bug that prevented plugin tools from being discovered by the open-core when run from the command line on PATH when the working directory was something other than WBT.
- Fixed several bugs in the ContoursFromPoints tool.
- Fixed the z_factor calculation for large-extent DEMs in geographic coordinates for the geomorphometric shape metric tools, e.g., slope, aspect, hillshade, and curvatures. The new approach calculates a different z_factor conversion value for each row in the raster, rather than using a single value based on the raster mid-point latitude. This should help improve the accuracy of these shape indices on large-extent rasters in geographic coordinate systems.
- Fixed several bugs in the Isobasins and D8FlowAccumulation tool.
- The NewRasterFromBase tool now accepts a vector base file (and grid cell size) as well as a raster.
- The WhiteboxTools User Manual has had a refresh and is now hosted at: https://www.whiteboxgeo.com/manual/wbt_book/intro.html.
- We have added numerous tools to the WhiteboxTools Extensions.
WhiteboxTools v1.5.0
Version 1.5.0 (31-05-2021)
- This release does not include very many new tools. Despite this, this is probably one of the largest
releases yet. We have made extensive changes to the codebase, improving functionality in many
significant ways. Therefore, we're very excited to announce the release of v1.5. - Probably the most exciting change is the introduction of plugin tools. Up until now, WBT has had a
monolithic architecture, where all of the tools live within a single binary. This architecture has
provided a number of benefits up until now. However, as the number of tools in WBT grows, it becomes
increasingly difficult to maintain this program structure - in particular, compile times have grown
significantly since the projects start. A plugin architecture provides much greater flexibility in
this regard. Single tool plugins can be created, placed within the new 'plugins' folder within the
WBT directory, and the whitebox_tools.exe binary will treat these plugins like any other tool within
the monolith. This also means that WBT users can develop their own custom tools, without the required
know-how of figuring out how to integrate their tool into the large WBT code-base. The user manual
will be updated shortly to describe how this process works. For now, there is only one plugin tool
example in the open-core (SplitVectorLines) although several other plugins have been developed (more
on this below). The one downside of the new plugin architecture is that the size of the WBT download
will inevitably grow, as individual tool executables will be larger than the single monolith. We
believe that this is an acceptable compromise. - In order to accommodate plugin tools, we have significantly changed the codebase. Most significantly
We have pulled the code associated with low-level functions, the so-called 'plumbing' code, (e.g.
code for reading and writing various data files) into separate sub-repositories. In this way, the
tools in the monolith and the plugin tools can both use this code without duplication. - WBT now has persistent environment variables contained within a 'settings.json' file within the WBT
folder. Currently, these settings including 'verbose_mode', 'working_directory', 'compress_rasters',
and 'max_procs'. More environment variables may be added in later releases. The fact that verbose mode
the working directory, and the compress_rasters flag are now persistent does have implications for the
Python and R front-ends and for the way these settings are used. The user manual will be updated
shortly to reflect these changes. - We introduced the 'max_procs' setting. Now, all tools that run in parallel, or partially parallelize,
can be restricted to a maximum number of processes. Before, WBT would simply use all of the available
cores in the machine it was running on. While this is still the default (max_procs: -1
), there are
certain conditions where this behaviour is undesirable. For example, when WBT is run on large servers
or cloud-computing environments where a great many cores are shared among many users, it can be
problematic when a single user/program consumes all of the available cores. This setting limits
the maximum number of procs. - Added the EmbankmentMapping tool for mapping transportation embankments (road, rail) in LiDAR DEMs.
- Added the SplitVectorLines tool. This tool will parse an input line vector into a series of segments
of a specified length. It is also an example of a WBT plugin. - The code has been updated to reflect the new zLidar v1.1 specification, which has significantly improved
compression rates (testing shows it is between 91% and 109% of LAZ), greater flexibility (users may
specify the degree of compression versus speed of reading/writing), and numerous bug fixes. The zLidar
specification webpage will soon be updated to reflect the new version. Further news on this front,
it has come to our attention recently that there is now a Rust-based LAZ encoder/decoder, which provides
an opportunity for us to add LAZ support in a future version of WBT. We are currently evaluating this
as an option. - We are trying to be more engaging with the WBT user community. In this regard, we have set up a new
Google Groups forum for user to ask questions (https://groups.google.com/g/whiteboxtools), and have a
new Twitter account (@whiteboxgeo) and newsletter to make announcements. Feel free to sign up for
either if you're interested in staying in touch. - Lastly, we are very pleased to announce the creation of WhiteboxTools Geospatial Inc., a new company
based on providing extension services around the open-source WBT platform. It is our vision that this
company will provide a way of making the ongoing development of the WBT open-core more sustainable in
the future, by enabling developers to work full-time on the project. Please read my 'open letter to the
WBT community' (https://www.whiteboxgeo.com/open-letter-whiteboxtools-community/) for more details
about this exciting development. Our plan is to maintain, and continue development of, the open-core of
WBT, while providing plugin extensions that enhance the core capabilities. To begin with, we are launching
the Whitebox General Toolset Extension, a set of (currently) 19 tools to help GIS professionals with their
everyday workflows. Please see the newly redesigned WBT webpage at www.whiteboxgeo.com for more details.
If you have been interested in supporting the WBT project in the past and haven't known how, buying a
license for the General Toolset Extension is a wonderful way of doing so.
WhiteboxTools v1.4.0
This release add some new tools and several bug fixes. Of the new tools, we are most excited about the addition of the TimeInDaylight tool, which estimates the proportion of daytime that each cell in a digital surface model (DSM) is in an exposed area. This is a very powerful method of performing a basic solar radiation modelling workflow. The new LidarDigitalSurfaceModel tool can be used to create DSMs for input to the TimeInDaylight tool. In addition to these updates, the User Manual has also been updated in numerous places with enhanced documentation. As always, if you wish to compile from source code, be sure to update to the most recent version of Rust beforehand using rustup update stable
. Pre-compiled binaries are available for Windows (win), MacOS (Darwin), and Linux on Github and from the WhiteboxTools homepage. Please report any bugs that you encounter by creating an issue on the WhiteboxTools Github site.
- Added the TimeInDaylight model tool for modelling the proportion of daytime that a location is not in shadow.
- Added the MapOffTerrainObjects tool.
- Added the FilterRasterFeaturesByArea tool.
- Added the LidarDigitalSurfaceModel tool.
- The D8 and FD8 flow pointer tools now output byte rasters.
- The Isobasins tool now optionally outputs an upstream/downstream connections table.
- The HorizonAngle tool has had significant performance improvements.
- Improvements to the RemoveOffTerrainObjects tool's performance.
- The Resample tool has been modified so that it does not require a 'destination' raster. Instead,
it will create a new output raster either based on a user-specified target cell resolution or
an optional base raster, much like the vector-to-raster conversion tools. - Tools that input a z_factor conversion no longer override user input with geographic coordinates
(see issue #113). - The StreamLinkIdentifier tool now outputs a 32-bit integer format, increasing the maximum allowable
number of streams (see issue #110). - Fixed a bug with cubic-convolution and bilinear resampling in the Mosaic tool (see issue #109).
WhiteboxTools v1.3.1
This release adds a few new tools, including two options for creating more advanced hillshade images from DEMs, and better raster file support. This includes critical fixes for the WBT GeoTIFF reader/writer and added support for reading BIL files.
- Added the HypsometricallyTintedHillshade tool to create hypsometric tinted hillshades.
- Added the MultidirectionalHillshade tool.
- Added the ability to read/write in the Esri BIL raster format.
- Added the LidarRooftopAnalysis tool.
- The MultiPartToSinglePart tool now handles MultiPoint vectors.
- Fixed a bug with the VoronoiDiagram to better handle MultiPoint vectors.
- Fixed an issue with writing compressed RGB GeoTIFFs.
- Fixed an issue reading LZW compressed GeoTIFFs.
WhiteboxTools v1.3.0
- Tools will now output DEFLATE compressed GeoTIFFs when the --compress_rasters parameter is used.
- Added support for a newly developed compressed LiDAR data format, the ZLidar file. All tools
that accepted LAS file inputs and produced LAS outputs can now use '*.zlidar' files as well. I
have also added the LasToZlidar and ZlidarToLas tools to perform conversions. While the ZLidar
format does not yield compression rates quite as good as the popular LAZ file format, you can
expect ZLidar files to be between 20-30% of the size of the equivalent LAS file. A file
specification will be published in the near future to describe the open ZLidar data format. - Added the AsciiToLas tool.
- Added the ContoursFromRaster tool for creating a vector contour coverage from a raster surface model (DEM).
- Added the ContoursFromPoints tool for creating a vector contour coverage from vector points.
- Added the UpdateNodataCells tool.
- Modified the Slope tool to optionally output in degrees, radians, or percent gradient.
- Modified the Mosaic tool, which now runs much faster with large numbers of input tiles.
- The vector-to-raster conversion tools now preserve input projections.
- Fixed a bug in the RasterToVectorPolygons tool.
- Fixed several bugs in the MergeTableWithCsv tool.
- Modified the FillMissingData tool to allow for the exclusion of edge-connected NoData cells from the operation.
This is better for irregular shaped DEMs that have large areas of NoData surrounding the valid data. - The LidarConstructVectorTin tool has been depreciated. The tool was not creating the proper output.
Furthermore, since the number of points in the average LiDAR tile is usually many million, this tool
would usually produce Shapefiles that exceed the maximum allowable number of shape geometries. If
a vector TIN is required for a LiDAR point set, users should convert the file to a Shapefile and then
use the ConstructVectorTin tool instead. And of course, if you are interested in a raster TIN from a
LiDAR file, use the LidarTinGridding tool instead. - FlattenLakes now handles multipart lake polygons.
WhiteboxTools v1.2.0
- Added the RasterToVectorPolygons tool, which now completes the raster-vector conversion tool set.
- Added the MultiscaleElevationPercentile tool.
- Added the AttributeCorrelationNeighbourhoodAnalysis tool.
- Added the RadialBasisFunctionInterpolation tool, which includes a thin-plate spline mode.
- Added the RasterPerimeter tool to measure the perimeter of raster polygons.
- Added the MDInfFlowAccumulation tool to perform the MD-infinity flow accumulation of Seibert
and McGlynn (2007). - Added the InsertDams tool, which can be used to insert impoundment features at a set of points
of interest into a DEM. This tool can be used in combination with the ImpoundmentSizeIndex tool
to create artificial reservoirs/depressions. - Added the HeightAboveGround tool, to normalize a LiDAR point cloud. Each point's z-value is
converted to the height above the nearest ground-classified point. - Modified the LidarRbfInterpolation tool to improve efficiency.
- Fixed an issue with how floating point attributes were written in Shapefile attribute tables.
- Updated the LidarSegmentation tool, which now used RANSAC to fit planar models to points.
- Fixed an issue with the Reclass and ReclassFromFile tool that caused striping.
- The Relcass and ReclassFromFile tools now take 'min' and 'max' in the reclass string.
- The watershed tool now accepts either a set of vector points or a raster for the pour points
file. If a raster is specified, all non-zero, non-NoData valued cells will be considered
outlet cells and the watershed labels will be assigned based on these values. - The D8 and D-infinity flow accumulation tools now take either an input DEM or a flow pointer raster
as inputs.
WhiteboxTools v1.1.0
- Added the BreachDepressionsLeastCost tool, which performs a modified form of the Lindsay
and Dhun (2015) impact minimizing breaching algorithm. This modified algorithm is very
efficient and can provide an excellent method for creating depressionless DEMs from large
DEMs, including those derived from LiDAR. It is particularly well suited to breaching
through road embankments, approximately the pathway of culverts. - The FillDepressions tool algorithm has been completely re-developed. The new algorithm is
significantly faster than the previous method, which was based on the Wang and Lui method.
For legacy reasons, the previous tool has been retained and renamed FillDepressonsWangAndLui.
Notice that this new method also incorporates significantly improved flat area correction
that maintains general flowpaths of filled areas. - The Sink and DepthInSink tools have been updated to use the new depression filling algorithm.
- Added the ClassifyBuildingsInLidar tool to reclassify LiDAR points within a LAS file
to the building class value (6) that are located within one or more building footprint
contained in an input polygon vector file. - Added the NaturalNeighbourInterpolation tool for performing Sibson's (1981) interpolation
method on input point data. - Added the UpslopeDepressionStorage tool to estimate the average upslope depression
storage capacity (DSC). - Added the LidarRfbInterpolation tool for performing a radial basis function interpolation
of LiDAR data sets. - The WhiteboxTools Runner user interface has been significantly improved (many thanks to
Rachel Broders for these contributions). - Fixed a bug in which the photometric interpretation was not being set by certain raster
decoders, including the SAGA encoder. This was causing an error when outputting GeoTIFF
files. - Updated the ConstructVectorTIN and TINGridding tools to include a maximum triangle edge
length to help avoid the creation of spurious long and narrow triangles in convex regions
along the data boundaries. - Added the ImageCorrelationNeighbourhoodAnalysis tool for performing correlation analysis
between two input rasters within roving search windows. The tool can be used to perform
Pearson's r, Spearman's Rho, or Kendall's Tau-b correlations.