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
Digital Earth Australia notebooks and tools repository

Repository for Digital Earth Australia Jupyter Notebooks: tools and workflows for geospatial analysis with Open Data Cube and xarray

Geoscience Australia 335 Dec 24, 2022
OSMnx: Python for street networks. Retrieve, model, analyze, and visualize street networks and other spatial data from OpenStreetMap.

OSMnx OSMnx is a Python package that lets you download geospatial data from OpenStreetMap and model, project, visualize, and analyze real-world street

Geoff Boeing 4k Jan 08, 2023
An API built to format given addresses using Python and Flask.

An API built to format given addresses using Python and Flask. About The API returns properly formatted data, i.e. removing duplicate fields, distingu

1 Feb 27, 2022
Read images to numpy arrays

mahotas-imread: Read Image Files IO with images and numpy arrays. Mahotas-imread is a simple module with a small number of functions: imread Reads an

Luis Pedro Coelho 67 Jan 07, 2023
A ninja python package that unifies the Google Earth Engine ecosystem.

A Python package that unifies the Google Earth Engine ecosystem. EarthEngine.jl | rgee | rgee+ | eemont GitHub: https://github.com/r-earthengine/ee_ex

47 Dec 27, 2022
Code and coordinates for Matt's 2021 xmas tree

xmastree2021 Code and coordinates for Matt's 2021 xmas tree This repository contains the code and coordinates used for Matt's 2021 Christmas tree, as

Stand-up Maths 117 Jan 01, 2023
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
A set of utility functions for working with GeoJSON annotations in Kaibu

kaibu-utils A set of utility functions for working with Kaibu. Create a new repository Create a new repository and select imjoy-team/imjoy-python-temp

ImJoy Team 0 Dec 12, 2021
ProjPicker (projection picker) is a Python module that allows the user to select all coordinate reference systems (CRSs)

ProjPicker ProjPicker (projection picker) is a Python module that allows the user to select all coordinate reference systems (CRSs) whose extent compl

Huidae Cho 4 Feb 06, 2022
Pure python WMS

Ogcserver Python WMS implementation using Mapnik. Depends Mapnik = 0.7.0 (and python bindings) Pillow PasteScript WebOb You will need to install Map

Mapnik 130 Dec 28, 2022
LEOGPS - Satellite Navigation with GPS on Python!

LEOGPS is an open-source Python software which performs relative satellite navigation between two formation flying satellites, with the objective of high accuracy relative positioning. Specifically,

Samuel Low 50 Dec 13, 2022
Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Wei Ji 20 Nov 24, 2022
Spectral decomposition for characterizing long-range interaction profiles in Hi-C maps

Inspectral Spectral decomposition for characterizing long-range interaction prof

Nezar Abdennur 6 Dec 13, 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
A trivia questions about Europe

EUROPE TRIVIA QUIZ IN PYTHON Project Outline Ask user if he / she knows more about Europe. If yes show the Trivia main screen, else show the end Trivi

David Danso 1 Nov 17, 2021
Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

django-rest-framework-gis Geographic add-ons for Django Rest Framework - Mailing List. Install last stable version from pypi pip install djangorestfra

OpenWISP 981 Jan 03, 2023
Streamlit Component for rendering Folium maps

streamlit-folium This Streamlit Component is a work-in-progress to determine what functionality is desirable for a Folium and Streamlit integration. C

Randy Zwitch 224 Dec 30, 2022
A compilation of several single-beam bathymetry surveys of the Caribbean

Caribbean - Single-beam bathymetry This dataset is a compilation of several single-beam bathymetry surveys of the Caribbean ocean displaying a wide ra

Fatiando a Terra Datasets 0 Jan 20, 2022
Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot

Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot without any prior knowledge about the position of the receiver and only coarse knowledge about the time.

Jonas Beuchert 2 Nov 17, 2022
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.

google-maps-at-88-mph The folks maintaining Google Maps regularly update the satellite imagery it serves its users, but outdated versions of the image

Noah Doersing 111 Sep 27, 2022