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
Django model field that can hold a geoposition, and corresponding widget

django-geoposition A model field that can hold a geoposition (latitude/longitude), and corresponding admin/form widget. Prerequisites Starting with ve

Philipp Bosch 324 Oct 17, 2022
A NASA MEaSUREs project to provide automated, low latency, global glacier flow and elevation change datasets

Notebooks A NASA MEaSUREs project to provide automated, low latency, global glacier flow and elevation change datasets This repository provides tools

NASA Jet Propulsion Laboratory 27 Oct 25, 2022
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

832 Dec 31, 2022
This program analizes films database with adresses, and creates a folium map with closest films to the coordinates

Films-map-project UCU CS lab 1.2, 1st year This program analizes films database with adresses, and creates a folium map with closest films to the coor

Artem Moskovets 1 Feb 09, 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
Ingest and query genomic intervals from multiple BED files

Ingest and query genomic intervals from multiple BED files.

4 May 29, 2021
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
Python package for earth-observing satellite data processing

Satpy The Satpy package is a python library for reading and manipulating meteorological remote sensing data and writing it to various image and data f

PyTroll 882 Dec 27, 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
Use Mapbox GL JS to visualize data in a Python Jupyter notebook

Location Data Visualization library for Jupyter Notebooks Library documentation at https://mapbox-mapboxgl-jupyter.readthedocs-hosted.com/en/latest/.

Mapbox 620 Dec 15, 2022
geobeam - adds GIS capabilities to your Apache Beam and Dataflow pipelines.

geobeam adds GIS capabilities to your Apache Beam pipelines. What does geobeam do? geobeam enables you to ingest and analyze massive amounts of geospa

Google Cloud Platform 61 Nov 08, 2022
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
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
ArcGIS Python Toolbox for WhiteboxTools

WhiteboxTools-ArcGIS ArcGIS Python Toolbox for WhiteboxTools. This repository is related to the ArcGIS Python Toolbox for WhiteboxTools, which is an A

Qiusheng Wu 190 Dec 30, 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
framework for large-scale SAR satellite data processing

pyroSAR A Python Framework for Large-Scale SAR Satellite Data Processing The pyroSAR package aims at providing a complete solution for the scalable or

John Truckenbrodt 389 Dec 21, 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
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
Water Detect Algorithm

WaterDetect Synopsis WaterDetect is an end-to-end algorithm to generate open water cover mask, specially conceived for L2A Sentinel 2 imagery from MAJ

142 Dec 30, 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