ArcGIS Python Toolbox for WhiteboxTools

Overview

WhiteboxTools-ArcGIS

docs ArcGIS python R QGIS License: MIT Twitter Follow Donate

ArcGIS Python Toolbox for WhiteboxTools.

This repository is related to the ArcGIS Python Toolbox for WhiteboxTools, which is an ArcGIS frontend of a stand-alone executable command-line program called WhiteboxTools.

Note Important Note: This toolbox only supports ArcGIS Pro and ArcGIS 10.6 or newer. Don't waste your time trying it on ArcGIS 10.5 or older versions.

Contents

  1. Description
  2. Installation
  3. Usage
  4. Available Tools
  5. Supported Data Formats
  6. Contributing
  7. License
  8. Reporting Bugs
  9. Toolbox Screenshots

Description

WhiteboxTools-ArcGIS is an ArcGIS Python Toolbox for WhiteboxTools, an advanced geospatial data analysis platform developed by Prof. John Lindsay (webpage; jblindsay) at the University of Guelph's Geomorphometry and Hydrogeomatics Research Group. 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, mainly GIS. Suggested citation: Lindsay, J. B. (2016). Whitebox GAT: A case study in geomorphometric analysis. Computers & Geosciences, 95, 75-84. doi:10.1016/j.cageo.2016.07.003.

Installation

Step 1: Download the toolbox

  1. Click the green button (Clone or download) on the upper-right corner of this page to download the toolbox as a zip file.

  2. Depcompress the downloaded zip file.

Step 2: Connect to the toolbox

  1. Navigate to the Folder Connections node in the catalog window tree.

  2. Right-click the node and choose Connect To Folder.

  3. Type the path or navigate to the WhiteboxTools-ArcGIS folder and click OK.

  4. Browse into the toolbox and start using its tools.

Usage

Open any tool within the toolbox and start using it. Check out the WhiteboxTools User Mannual for more detailed help documentation of each tool.

Available Tools

The WhiteboxTools library currently contains 440 tools, which are each grouped based on their main function into one of the following categories: Data Tools, GIS Analysis, Hydrological Analysis, Image Analysis, LiDAR Analysis, Mathematical and Statistical Analysis, Stream Network Analysis, and Terrain Analysis. For a listing of available tools, complete with documentation and usage details, please see the WhiteboxTools User Manual.

Supported Data Formats

The WhiteboxTools library can currently support read/writing raster data in Whitebox GAT, GeoTIFF, ESRI (ArcGIS) ASCII and binary (.flt & .hdr), GRASS GIS, Idrisi, SAGA GIS (binary and ASCII), and Surfer 7 data formats. The library is primarily tested using Whitebox raster data sets and if you encounter issues when reading/writing data in other formats, you should report the issue. Please note that there are no plans to incorporate third-party libraries, like GDAL, in the project given the design goal of keeping a pure (or as close as possible) Rust codebase.

At present, there is limited ability in WhiteboxTools to read vector geospatial data. Support for Shapefile (and other common vector formats) will be enhanced within the library soon.

LiDAR data can be read/written in the common LAS data format. WhiteboxTools can read and write LAS files that have been compressed (zipped with a .zip extension) using the common DEFLATE algorithm. Note that only LAS file should be contained within a zipped archive file. The compressed LiDAR format LAZ and ESRI LiDAR format are not currently supported by the library.

Contributing

If you would like to contribute to the project as a developer, follow these instructions to get started:

  1. Fork the WhiteboxTools-ArcGIS repository (https://github.com/giswqs/WhiteboxTools-ArcGIS)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Unless explicitly stated otherwise, any contribution intentionally submitted for inclusion in the work shall be licensed as the MIT license without any additional terms or conditions.

License

The ArcGIS Toolbox for WhiteboxTools is distributed under the MIT license, a permissive open-source (free software) license.

Reporting Bugs

ArcGIS Toolbox for WhiteboxTools is distributed as is and without warranty of suitability for application. If you encounter flaws with the software (i.e. bugs) please report the issue. Providing a detailed description of the conditions under which the bug occurred will help to identify the bug. Use the Issues tracker on GitHub to report issues with the software and to request feature enchancements. Please do not email Dr. Qiusheng Wu or Dr. John Lindsay directly with bugs.

Toolbox Screenshots

Toolbox-1 Toolbox-2 Toolbox-3

Comments
  • Issue with ArcGIS 10.5

    Issue with ArcGIS 10.5

    One user reported having a "No response" issue opening the toolbox in ArcGIS 10.5. I just tested it myself and found that it indeed takes a while (~ 10 mins) to first open it in ArcGIS 10.5. Note that the toolbox (WhiteboxTool.pyt) contains over 25,000 lines of Python code. Therefore, it could take some time to load for the first time. Please be patient.

    I don't have a solution for it as this moment. I would recommend upgrading to ArcGIS 10.6 (Python 2.7) or ArcGIS Pro (Python 3.6). The toolbox has been tested to work well on ArcGIS 10.6 and ArcGIS Pro.

    ArcGIS 10.5 ArcGIS-10.5

    ArcGIS 10.6 ArcGIS-10.6

    ArcGIS Pro ArcGIS-10.6

    bug help wanted 
    opened by giswqs 14
  • Idea to improve robustness of all tools that take vector input

    Idea to improve robustness of all tools that take vector input

    So I was about to suggest there were errors in the following tools:

    • VECTOR LINE TO RASTER
    • VECTOR POINT TO RASTER

    But lucky for me I tested my input data. Turned out the problem was that my input data was a file geodatabase featureclass. Once I exported the layer to shapefile format the tools ran without error.

    Now I went and had a look at the WBT manual and it does indeed say that it only accepts shapefiles but I think the tool needs to trap this as the error message returned gives no indication as to what the problem was to the user. This can be easily rectified by inserting the following code into the updateMessges() section of each tool that takes a vector layer as input. Here is the code

        def updateMessages(self, parameters):
            # Assumes that parameter 0 is always the vector input
            if parameters[0].altered:
                layer = parameters[0].value
                desc = arcpy.Describe(layer)
                if desc.FeatureClass.dataType != "ShapeFile":
                    parameters[0].setErrorMessage("This tool expects the layer to be a Shapefile")
                else:
                    parameters[0].clearMessage()
            return
    

    Currently the tools are doing little or no input validation and this simple addition will make the user experience certainly less frustrating.

    enhancement 
    opened by Hornbydd 10
  • Many hydrology tools not writing output files in ArcGis Pro

    Many hydrology tools not writing output files in ArcGis Pro

    Hi, I've been trying to run some of the hydrology tools in ArcGis Pro. While the models appear to be running to completion, they fail to save an output file to the disk which is a bit odd. Any idea why this happening?

    opened by lukejzw 8
  • SmoothVegetationResidual Fails to open in ArcPro Toolbox

    SmoothVegetationResidual Fails to open in ArcPro Toolbox

    With the most recent WhiteboxTools-ArcGIS-master zip (downloaded today), as well as the first version I downloaded ~4 months ago, the "SmoothVegetationResidual" tool fails to open with the following error: image This error occurs prior to loading/selecting any files. My version of WBT is licensed with the GTE and I can verify that other licensed tools succeed in opening and running.

    SmoothVegetationResidual also runs successfully when running from wb_runner.py (Note: John Lindsay helped troubleshoot over chat and asked me to post the issue here, as it seems to be related to the Arc toolbox specifically)

    opened by PBSUAS 7
  • Raster processing tools that take a raster OR a constant fail

    Raster processing tools that take a raster OR a constant fail

    There are many tools in the Math and Stats Tool toolset that have parameters that take a raster OR a constant. If try to run any of these tools they all fail as you cannot proceed as they reject a constant value.

    Take the Divide tool as example you cannot divide your test data DEM.tif by a number.

    For these tools expanding the allowable list of data types resolves the issue, I tried the following:

    datatype=["GPRasterLayer","Long","Double"]

    bug 
    opened by Hornbydd 7
  • Issue with ArcGIS 10.7 and Pro 2.9 LiDAR Tools

    Issue with ArcGIS 10.7 and Pro 2.9 LiDAR Tools

    Hi, I have a WTB toolbox download from over a year ago (has fewer tools than the new download, like 'LidarContour') that works okay on my personal computer. However, I just downloaded a fresh toolbox to my Amazon EC2 ArcGIS Server instance, and tried to utilize the 'LidarContour' and 'LasToShapefile' in both ArcMap and Pro, and both instantaneously fail and show the same errors in the GP results 'messages' window. Tool inputs and error messages are show below. Something with an unexpected keyword argument.

    LiDAR Data: .LAS file downloaded from USGS 3DEP.

    Error Messages/ Tool Inputs Las2Shp_Failure LidarContour_Failure

    opened by JJCIV 6
  • ArcGIS Version this toolbox was designed for should be clearly stated.

    ArcGIS Version this toolbox was designed for should be clearly stated.

    Hello.. I was initially excited to see an ArcGIS option available and read the readme file. I am running ArcGIS 10.4 but there was no indication of version this was developed for, so I gave it a try. It behaved painstakingly slow when initially loaded, similar to the 10.5 issue, but also creates an XML file for EVERY WBT command in the WBT folder where the toolbox is stored. One reason for the slow load time.. but it takes forever starting ArcMap when this tool is loaded, and the functions run but do nothing. I understand it is likely not compatible.. but my recommendation to you is to save people the heartache and just state Up Front - like perhaps in the readme file - what version ArcGIS this should be run in (e.g. 10.6 or above!). Because you can't assume everyone out there is running the latest and greatest. Thank you. JG

    opened by JGaiot 6
  • Lidar Tile Footprint error

    Lidar Tile Footprint error

    I tested "Lidar Tile Footprint" in WhiteboxTools-ArcGIS(v1.1.0) using ArcGIS Pro 2.4, but I got an error.

    Traceback (most recent call last): File "", line 21613, in execute TypeError: lidar_tile_footprint() got multiple values for argument 'output'

    opened by kataya 6
  • Tool Openness not recognized

    Tool Openness not recognized

    Thank you for all your work on this. I've been trying to run the openness tool, but I keep running into the same error where it says whitebox_tools.exe doesn't contain a tool called "Openness" (exact message 'Unrecognized tool name Openness.'). Other tools that I've tried do seem to work.

    opened by Geomorph2 5
  • Outputs don't have defined coordinate systems

    Outputs don't have defined coordinate systems

    Just been testing the vector point to raster tool, I assume this is an issue in all tools that generate a raster as an output. My gut feeling this is an issue with WBT ( @jblindsay ) rather than the python toolbox, but could be wrong?

    My input dataset is a point dataset with a British_National_Grid coordinate system, the resulting TIF raster has no coordinate system as shown below:

    image

    I can run the define projection tool to set it to British_National_Grid.

    I notice that if I feed this raster (with a coordinate system set) straight into a raster to vector polygon tool the output shapefile retains the coordinate system.

    The output should not be loosing the coordinate system.

    I see two options:

    1. If it is a bug in WBT then fix it.
    2. If it is a limitation in WBT and rasters drop coordinate systems for what ever reason, then why not call the define projection tool within the execute() part of the function as a last step to ensure output has a valid coordinate system. Users should not be required to run the define projection tool when the input had a coordinate system.
    bug 
    opened by Hornbydd 5
  • No classification data

    No classification data

    Used machine learning tools to create classification data using the Kmeans cluster. The processing shows to be successful, however, we have no outputs in the specified folder. I am running the toolbox on ArcGIS desktop 10.8.1. Thank you

    opened by geojmm 4
Releases(v2.2.0)
  • v2.2.0(Oct 26, 2022)

  • v2.1.1(Mar 11, 2022)

  • v2.1.0(Feb 3, 2022)

  • v2.0.1(Dec 8, 2021)

  • v1.5.0(Jun 8, 2021)

  • v1.4.0(Sep 4, 2020)

    Dr. John Lindsay has updated WhiteboxTools to v1.4.0. More information about this version can be found at https://github.com/jblindsay/whitebox-tools/releases/tag/1.4.0. I am updating the WhiteboxTools ArcGIS frontend to v1.4.0.

    See below the updates from Dr. John Lindsay:

    This release adds 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 theWhiteboxTools 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).
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jul 23, 2020)

    Dr. John Lindsay has updated WhiteboxTools to v1.3.1. More information about this version can be found at https://github.com/jblindsay/whitebox-tools/releases/tag/v1.3.1. I am updating the WhiteboxTools ArcGIS frontend to 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.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Feb 12, 2019)

Owner
Qiusheng Wu
Assistant Professor of Geography at the University of Tennessee, Knoxville
Qiusheng Wu
A library to access OpenStreetMap related services

OSMPythonTools The python package OSMPythonTools provides easy access to OpenStreetMap (OSM) related services, among them an Overpass endpoint, Nomina

Franz-Benjamin Mocnik 342 Dec 31, 2022
GetOSM is an OpenStreetMap tile downloader written in Python that is agnostic of GUI frameworks.

GetOSM GetOSM is an OpenStreetMap tile downloader written in Python that is agnostic of GUI frameworks. It is used with tkinter by ProjPicker. Require

Huidae Cho 3 May 20, 2022
r.cfdtools 7 Dec 28, 2022
Processing and interpolating spatial data with a twist of machine learning

Documentation | Documentation (dev version) | Contact | Part of the Fatiando a Terra project About Verde is a Python library for processing spatial da

Fatiando a Terra 468 Dec 20, 2022
A modern, geometric typeface by @chrismsimpson (last commit @ 85fa625 Jun 9, 2020 before deletion)

Metropolis A modern, geometric typeface. Influenced by other popular geometric, minimalist sans-serif typefaces of the new millenium. Designed for opt

Darius 183 Dec 25, 2022
Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

OpenWISP 982 Jan 06, 2023
Summary statistics of geospatial raster datasets based on vector geometries.

rasterstats rasterstats is a Python module for summarizing geospatial raster datasets based on vector geometries. It includes functions for zonal stat

Matthew Perry 437 Dec 23, 2022
Implemented a Google Maps prototype that provides the shortest route in terms of distance

Implemented a Google Maps prototype that provides the shortest route in terms of distance, the fastest route, the route with the fewest turns, and a scenic route that avoids roads when provided a sou

1 Dec 26, 2021
iNaturalist observations along hiking trails

This tool reads the route of a hike and generates a table of iNaturalist observations along the trails. It also shows the observations and the route of the hike on a map. Moreover, it saves waypoints

7 Nov 11, 2022
Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Ayush Mishra 3 May 06, 2022
Python module to access the OpenCage geocoding API

OpenCage Geocoding Module for Python A Python module to access the OpenCage Geocoder. Build Status / Code Quality / etc Usage Supports Python 3.6 or n

OpenCage GmbH 57 Nov 01, 2022
Extract GoPro highlights and GPMF data.

Python script that parses the gpmd stream for GOPRO moov track (MP4) and extract the GPS info into a GPX (and kml) file.

Chris Auron 2 May 13, 2022
Python tools for geographic data

GeoPandas Python tools for geographic data Introduction GeoPandas is a project to add support for geographic data to pandas objects. It currently impl

GeoPandas 3.5k Jan 03, 2023
User friendly Rasterio plugin to read raster datasets.

rio-tiler User friendly Rasterio plugin to read raster datasets. Documentation: https://cogeotiff.github.io/rio-tiler/ Source Code: https://github.com

372 Dec 23, 2022
Rasterio reads and writes geospatial raster datasets

Rasterio Rasterio reads and writes geospatial raster data. Geographic information systems use GeoTIFF and other formats to organize and store gridded,

Mapbox 1.9k Jan 07, 2023
Python library to decrypt Airtag reports, as well as a InfluxDB/Grafana self-hosted dashboard example

Openhaystack-python This python daemon will allow you to gather your Openhaystack-based airtag reports and display them on a Grafana dashboard. You ca

Bezmenov Denys 19 Jan 03, 2023
This is a simple python code to get IP address and its location using python

IP address & Location finder @DEV/ED : Pavan Ananth Sharma Dependencies: ip2geotools Note: use pip install ip2geotools to install this in your termin

Pavan Ananth Sharma 2 Jul 05, 2022
Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Apoorva Lal 5 May 18, 2022
Build, deploy and extract satellite public constellations with one command line.

SatExtractor Build, deploy and extract satellite public constellations with one command line. Table of Contents About The Project Getting Started Stru

Frontier Development Lab 70 Nov 18, 2022
Wraps GEOS geometry functions in numpy ufuncs.

PyGEOS PyGEOS is a C/Python library with vectorized geometry functions. The geometry operations are done in the open-source geometry library GEOS. PyG

362 Dec 23, 2022