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
Documentation and samples for ArcGIS API for Python

ArcGIS API for Python ArcGIS API for Python is a Python library for working with maps and geospatial data, powered by web GIS. It provides simple and

Esri 1.4k Dec 30, 2022
Automatización de procesos geográficos con Python sobre Esri ArcGIS y QGIS.

Algoritmos y Programación GIS con Python by [email protected] Introducción Python es un potente lenguaje de programación interpretado con licencia

r.cfdtools 7 Dec 28, 2022
Tool to suck data from ArcGIS Server and spit it into PostgreSQL

chupaESRI About ChupaESRI is a Python module/command line tool to extract features from ArcGIS Server map services. Name? Think "chupacabra" or "Chupa

John Reiser 34 Dec 4, 2022
python toolbox for visualizing geographical data and making maps

geoplotlib is a python toolbox for visualizing geographical data and making maps data = read_csv('data/bus.csv') geoplotlib.dot(data) geoplotlib.show(

Andrea Cuttone 976 Dec 11, 2022
A toolbox for processing earth observation data with Python.

eo-box eobox is a Python package with a small collection of tools for working with Remote Sensing / Earth Observation data. Package Overview So far, t

null 13 Jan 6, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 1, 2021
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 5, 2022
GeoIP Legacy Python API

MaxMind GeoIP Legacy Python Extension API Requirements Python 2.5+ or 3.3+ GeoIP Legacy C Library 1.4.7 or greater Installation With pip: $ pip instal

MaxMind 230 Nov 10, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 765 Jan 6, 2023
Geocoding library for Python.

geopy geopy is a Python client for several popular geocoding web services. geopy makes it easy for Python developers to locate the coordinates of addr

geopy 3.8k Dec 30, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

null 6k Jan 2, 2023
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 3, 2023
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

null 832 Dec 31, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 763 Dec 26, 2022
PySAL: Python Spatial Analysis Library Meta-Package

Python Spatial Analysis Library PySAL, the Python spatial analysis library, is an open source cross-platform library for geospatial data science with

Python Spatial Analysis Library 1.1k Dec 18, 2022
Simple, concise geographical visualization in Python

Geographic visualizations for HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it? GeoViews is a Python library that ma

HoloViz 445 Jan 2, 2023
A package built to support working with spatial data using open source python

EarthPy EarthPy makes it easier to plot and manipulate spatial data in Python. Why EarthPy? Python is a generic programming language designed to suppo

Earth Lab 414 Dec 23, 2022
pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Python 3-D coordinate conversions Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy. API similar to

Geospace code 292 Dec 29, 2022
:earth_asia: Python Geocoder

Python Geocoder Simple and consistent geocoding library written in Python. Table of content Overview A glimpse at the API Forward Multiple results Rev

Denis 1.5k Jan 2, 2023