WhiteboxTools Python Frontend

Overview

whitebox-python

https://pepy.tech/badge/whitebox https://ci.appveyor.com/api/projects/status/a7r1hna30kjbsmk3?svg=true Documentation Status https://img.shields.io/twitter/follow/giswqs?style=social

Important Note

https://i.imgur.com/Ic8BA7C.png

This repository is related to the WhiteboxTools Python Frontend only. You can report issues to this repo if you have problems installing this Python package. If you encounter any tool functioning specific errors, please open an issue on Dr. John Lindsay's WhiteboxTools repo.

Links

Contents

Description

The whitebox Python package is built on 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.

Installation

whitebox supports a variety of platforms, including Microsoft Windows, macOS, and Linux operating systems. Note that you will need to have Python 3.x installed. Python 2.x is not supported. The whitebox Python package can be installed using the following command:

pip install whitebox

If you have installed whitebox Python package before and want to upgrade to the latest version, you can use the following command:

pip install whitebox -U

It is recommended that you use a Python virtual environment (e.g., conda) to test the whitebox package. Please follow the conda user guide to install conda if necessary. Once you have conda installed, you can use Terminal or an Anaconda Prompt to create a Python virtual environment. Check managing Python environment for more information.

conda create -n py37 python=3.7
source activate py37
conda config --add channels conda-forge
conda install whitebox

whitebox Tutorials

Launch the whitebox tutorial notebook directly with mybinder.org or binder.pangeo.io now:

Quick Example

Tool names in the whitebox Python package can be called either using the snake_case or CamelCase convention (e.g. lidar_info or LidarInfo). See below for an example Python script (example.py). If you are interested in using the WhiteboxTools command-line program, check WhiteboxTools Usage.

import os
import pkg_resources
import whitebox

wbt = whitebox.WhiteboxTools()
print(wbt.version())
print(wbt.help())

# identify the sample data directory of the package
data_dir = os.path.dirname(pkg_resources.resource_filename("whitebox", 'testdata/'))

wbt.set_working_dir(data_dir)
wbt.verbose = False
wbt.feature_preserving_smoothing("DEM.tif", "smoothed.tif", filter=9)
wbt.breach_depressions("smoothed.tif", "breached.tif")
wbt.d_inf_flow_accumulation("breached.tif", "flow_accum.tif")

A Jupyter Notebook Tutorial for whitebox

This tutorial can be accessed in three ways:

Launch this tutorial as an interactive Jupyter Notebook on the cloud - https://gishub.org/whitebox-cloud.

https://i.imgur.com/LF4UE1j.gif

whitebox GUI

WhiteboxTools also provides a Graphical User Interface (GUI) - WhiteboxTools Runner, which can be invoked using the following Python script:

import whitebox
whitebox.Runner()

https://wetlands.io/file/images/whitebox.png

Troubleshooting

Linux

When using import whitebox, if you get an error that says No module named '_tkinter', please install the python3-tk package, you can try the following solution:

  • For Ubuntu, Linux Mint, etc: sudo apt-get install python3-tk
  • For Manjaro, Arch Linux: sudo pacman -S tk

Available Tools

The library currently contains 443 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 currently supports 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. 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.

Contributing

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

  1. Fork the whitebox project (https://github.com/giswqs/whitebox-python)
  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

License

The whitebox package is distributed under the MIT license, a permissive open-source (free software) license.

Reporting Bugs

Report bugs at https://github.com/giswqs/whitebox-python/issues.

If you are reporting a bug, please include:

  • Your operating system name and version.
  • Any details about your local setup that might be helpful in troubleshooting.
  • Detailed steps to reproduce the bug.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Comments
  • Using previous versions of WhiteboxTools

    Using previous versions of WhiteboxTools

    • whitebox version: 1.5.0
    • Python version: 3.6.10
    • Operating System: Ubuntu 20.04

    Description

    I would like to use WhiteboxTools v1.5.0 in order to use

    https://github.com/NCAR/wrf_hydro_gis_preprocessor

    but unforuntately, I can't pin WhiteboxTools to v1.5.0, despite being aware of issues like this:

    https://stackoverflow.com/questions/67495221/conda-environment-has-access-to-system-modules-how-to-prevent

    What I Did

    My steps to reproduce on Ubuntu 20.04 are:

    rm -rf ~/miniconda3 ~/.condarc ~/.conda ~/.continuum bash Miniconda3-py38_4.12.0-Linux-x86_64.sh conda init conda config --add channels conda-forge conda create -n wrfh_gis_env -c conda-forge python=3.6 gdal netCDF4 numpy pyproj whitebox=1.5.0 conda activate wrfh_gis_env (wrfh_gis_env) > python

    from whitebox.whitebox_tools import WhiteboxTools print(' Using {0}'.format(WhiteboxTools().version().split('\n')[0])) Using WhiteboxTools v2.1.0 by Dr. John B. Lindsay (c) 2017-2021

    Please note that outside of wrfh_gis_env, I do not have access to WhiteboxTools v2.1.0:

    python3.8

    from whitebox.whitebox_tools import WhiteboxTools Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'whitebox'

    Does anyone know how I might pin WhiteboxTools to v1.5.0?

    PS - Even from inside wrfh_gis_env, it's still not clear where v2.1.0 comes from:

    conda activate wrfh_gis_env (wrfh_gis_env) > python

    import whitebox as ; print(.path) ['/home/soft/miniconda3/envs/wrfh_gis_env/lib/python3.6/site-packages/whitebox']

    conda deactivate cd /home/soft/miniconda3/envs/wrfh_gis_env/lib/python3.6/site-packages/whitebox ls -al

    drwxrwxr-x 4 4096 Jun 28 15:54 WBT -rw-rw-r-- 1 25866248 Jun 28 15:54 WhiteboxTools_linux_amd64.zip -rw-rw-r-- 2 221 Jun 6 2021 init.py drwxrwxr-x 2 4096 Jun 28 15:58 pycache -rw-rw-r-- 2 3904 Jun 6 2021 automation.py -rw-rw-r-- 2 416 Jun 6 2021 cli.py -rw-rw-r-- 2 3831 Jun 6 2021 download_wbt.py -rw-rw-r-- 2 2469 Jun 6 2021 example.py drwxrwxr-x 2 4096 Jun 28 15:54 img drwxrwxr-x 2 4096 Jun 28 15:54 plugins drwxrwxr-x 2 4096 Jun 28 15:54 testdata -rw-rw-r-- 2 58608 Jun 6 2021 wb_runner.py -rw-rw-r-- 2 44 Jun 6 2021 whitebox.py -rw-rw-r-- 2 6146 Jun 6 2021 whitebox_example.py -rwxr-xr-x 1 29133144 Jun 28 15:54 whitebox_tools -rw-rw-r-- 2 401432 Jun 6 2021 whitebox_tools.py

    grep 2.1.0 * Binary file WhiteboxTools_linux_amd64.zip matches Binary file whitebox_tools matches

    cat init.py

    -- coding: utf-8 --

    """Top-level package for whitebox."""

    author = """Qiusheng Wu""" email = '[email protected]' version = '1.5.0'

    from .whitebox_tools import WhiteboxTools from .wb_runner import Runner

    opened by rickedanielson 8
  • Missing GLIBC library error with Python module

    Missing GLIBC library error with Python module

    • whitebox version:2.0.0
    • Python version:3.8
    • Operating System: Scientific Linux 7.9, 'Nitrogen'

    Description

    I have developed a program that uses the python whitebox module on my own computer that uses Centos 8, but when I try to install on our scientific linux machines I get the following error: ./whitebox_tools: /lib64/libm.so.6: version GLIBC_2.27' not found (required by ./whitebox_tools) ./whitebox_tools: /lib64/libc.so.6: versionGLIBC_2.18' not found (required by ./whitebox_tools)

    What I Did

    I've seen this thread, which seems to address the same issue: (https://github.com/jblindsay/whitebox-tools/issues/112) but the solution is for the whitebox tool and not the python module and I haven't been able to adapt it to my own situation. Is it possible, or am I barking up the wrong tree?

    Thanks in advance

    opened by InsolublePancake 8
  • wbt.conditional_evaluation() function return 0,but no result  export

    wbt.conditional_evaluation() function return 0,but no result export

    • whitebox version: newest
    • Python version: python 3.8
    • Operating System: Mac

    Description

    Describe what you were trying to get done. replace the rasterline values with DEM values

    What I Did

    wbt.conditional_evaluation( i='/home/jovyan/data/mynotebook/data/rasterline.tif', output='/home/jovyan/data/mynotebook/data/boundry.tif', statement='value >= 0.0', true='/home/jovyan/data/mynotebook/data/Elevation1.tif', false='#')

    Paste the command(s) you ran and the output.
    return 0
    
    opened by gaowudao 6
  • Discontinuous streams

    Discontinuous streams

    • whitebox version: 2.1.4
    • Python version: 3.8
    • Operating System: Scientific Linux (Rocky 8)

    Description

    This is probably not an issue with the tools, but am struggling to extract a continuous stream network from a DEM. I've been experimenting with it for some time but have been unable to improve on what I have now, which is 95% of a drainage network, but with intermittent gaps. The gaps occur where the downhill slope flattens off, even though there is still an obvious channel. I'm guessing that issue originates at the breach_depressions_least_cost stage, but I've experimented with the parameters and can't improve on what I have now, which is no good.

    Discontinuous_streams

    What I Did

    dem.zip

    My method is:

    breach_depressions_least_cost: dist=10, max_cost=100, min_dist=True, fill=True, d8_flow_accumulation: out_type="catchment area" extract_streams: threshold=3000

    Regarding the parameters. I've experimented with a wide range of values for breach depressions dist and max_cost. The values I've shown here work for most of the DEM, but still leave gaps in the stream network.

    Any help would be appreciated.

    Thanks, Rick

    opened by InsolublePancake 5
  • LidarElevationSlice isn't slicing

    LidarElevationSlice isn't slicing

    • whitebox version: v0.13.0
    • Python version:
      • Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
      • [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
    • Operating System: MacOS Mojave 10.14.2

    Description

    Describe what you were trying to get done.

    I have a small, 200 MB, colorized, indoor lidar point cloud of a conference room. I'm trying to extract a slice of it.

    The lidar_info output is the following:

    File Signature: LASF
    File Source ID: 0
    Global Encoding:
    GPS time=GpsWeekTime,
    Waveform data internal=false,
    Waveform data external=false,
    Return data synthetic=false,
    CRS method=WellKnownText
    Project ID (GUID): {0-0-0-00-000000}
    System ID: EXTRACTION
    Generating Software: WhiteboxTools 
    Las Version: 1.3
    File Creation Day/Year: 18/2019
    Header Size: 235
    Offset to Points: 440
    Number of VLRs: 2
    Point Format: 3
    Point Record Length: 34
    Num. of Points (32-bit): 5869712
    Number of Points by Return: [11739424, 0, 0, 0, 0]
    X Scale Factor: 0.0001
    Y Scale Factor: 0.0001
    Z Scale Factor: 0.0001
    X Offset: -19.8205
    Y Offset: -44.6813
    Z Offset: 0.15910000000000002
    Max X: 21.220100000000002
    Min X: -19.8205
    Max Y: 82.7065
    Min Y: -44.6813
    Max Z: 7.1942
    Min Z: 0.15910000000000002
    Waveform Data Start: 0
    Min Intensity: 514
    Max Intensity: 63737
    

    Tell us what happened, what went wrong, and what you expected to happen.

    When I try to use the lidar_elevation_slice command, it outputs a file the exact same size and no points have been removed as far as I can tell.

    What I Did

    Here is the command I'm running:

    import whitebox
    wbt = whitebox.WhiteboxTools()
    wbt.set_working_dir(os.getcwd())
    wbt.lidar_elevation_slice("test1.las", "test2.las", minz=3.0, maxz=5.0, cls=False)
    

    The command-line output looks ok:

    ./whitebox_tools --run="LidarElevationSlice" --wd="<full path removed>/Data" --input='test1.las' --output='test2.las' --minz='3.0' --maxz='5.0' --inclassval=2 --outclassval=1 -v
    
    ***********************************
    * Welcome to lidar_elevation_slice *
    ************************************
    Reading input LAS file...
    Performing analysis...
    Saving data: 0%
    Saving data: 1%
    Saving data: 2%
    Saving data: 3%
    Saving data: 4%
    Saving data: 5%
    Saving data: 6%
    Saving data: 7%
    Saving data: 8%
    Saving data: 9%
    Saving data: 10%
    Saving data: 11%
    Saving data: 12%
    Saving data: 13%
    Saving data: 14%
    Saving data: 15%
    Saving data: 16%
    Saving data: 17%
    Saving data: 18%
    Saving data: 19%
    Saving data: 20%
    Saving data: 21%
    Saving data: 22%
    Saving data: 23%
    Saving data: 24%
    Saving data: 25%
    Saving data: 26%
    Saving data: 27%
    Saving data: 28%
    Saving data: 29%
    Saving data: 30%
    Saving data: 31%
    Saving data: 32%
    Saving data: 33%
    Saving data: 34%
    Saving data: 35%
    Saving data: 36%
    Saving data: 37%
    Saving data: 38%
    Saving data: 39%
    Saving data: 40%
    Saving data: 41%
    Saving data: 42%
    Saving data: 43%
    Saving data: 44%
    Saving data: 45%
    Saving data: 46%
    Saving data: 47%
    Saving data: 48%
    Saving data: 49%
    Saving data: 50%
    Saving data: 51%
    Saving data: 52%
    Saving data: 53%
    Saving data: 54%
    Saving data: 55%
    Saving data: 56%
    Saving data: 57%
    Saving data: 58%
    Saving data: 59%
    Saving data: 60%
    Saving data: 61%
    Saving data: 62%
    Saving data: 63%
    Saving data: 64%
    Saving data: 65%
    Saving data: 66%
    Saving data: 67%
    Saving data: 68%
    Saving data: 69%
    Saving data: 70%
    Saving data: 71%
    Saving data: 72%
    Saving data: 73%
    Saving data: 74%
    Saving data: 75%
    Saving data: 76%
    Saving data: 77%
    Saving data: 78%
    Saving data: 79%
    Saving data: 80%
    Saving data: 81%
    Saving data: 82%
    Saving data: 83%
    Saving data: 84%
    Saving data: 85%
    Saving data: 86%
    Saving data: 87%
    Saving data: 88%
    Saving data: 89%
    Saving data: 90%
    Saving data: 91%
    Saving data: 92%
    Saving data: 93%
    Saving data: 94%
    Saving data: 95%
    Saving data: 96%
    Saving data: 97%
    Saving data: 98%
    Saving data: 99%
    Saving data: 100%
    Writing output LAS file...
    Complete!
    0
    

    But I get the entire file and not a slice.

    What am I doing wrong?

    Thanks in advance!

    opened by GeospatialPython 5
  • Whiteboxtools in AWS Sagemaker

    Whiteboxtools in AWS Sagemaker

    I was able to install whiteboxtools in AWS Sagemaker notebook instance. When I tried to execute commands:

    import whitebox wbt = whitebox.WhiteboxTools() print(wbt.tool_help("ElevPercentile")) and print(wbt.help())

    There is no output printed. Can anyone help me with how to use whiteboxtools and get results in AWS cloud. Thank you in advance.

    opened by geethaganji 4
  • Whitebox resetting working directory to whitebox directory in Anaconda environment

    Whitebox resetting working directory to whitebox directory in Anaconda environment

    • whitebox version: 2.0.3
    • Python version: 3.9
    • Operating System: RedHat Enterprise

    Description

    When using any whitebox functions for python, the current working directory is reset to the whitebox directory in my anaconda environment (e.g. /home/user_name/minconda3/envs/osgeo-env-v1/lib/python3.8/site-packages/whitebox). This causes many problems, since I am using whitebox functions across multiple scripts for my automated workflow.

    To clarify, after importing whitebox, the current working directory is set to my project directory where my python file is calling whitebox, which is what I want. But after using a function it is reset to the whitebox directory, so the functions do not end up running.

    I am attempting this in jupyter notebook.

    What I Did

    from whitebox import whitebox_tools
    wbt = whitebox_tools.WhiteboxTools()
    CWD = "/home/user_name/project/data"
    wbt.set_working_dir(CWD)
    wbt.clip_lidar_to_polygon("./filename.las", polygons="./poly_shapefile.shp", output="./lidarClip.las")
    
    

    Below is the error messages I receive.

    image

    Thank you for your time in reading this.

    opened by arojas314 4
  • urllib.error.HTTPError: HTTP Error 404: Not Found

    urllib.error.HTTPError: HTTP Error 404: Not Found

    • whitebox version: 1.4.0
    • Python version: 3.6
    • Operating System: Linux 18.04 LTS

    Description

    Hey, I'm getting error in the Docker geemap container when import whitebox for the first time. error

    It is not a problem if I type again an import. I couldn't understand why this throws an error. Here is a related issue: https://stackoverflow.com/questions/42441211/python-urllib-error-httperror-http-error-404-not-found

    I guess this is not an important error and related to network issues. I wanted to add in case someone sees the error message.

    What I Did

    docker run -it --name geemap_latest -p 8888:8888 -p 6006:6006 -v C:/Users/batuh/Desktop:/geemap/data bkavlak/geemap:latest bash
    import whitebox
    
    opened by bkavlak 4
  • glibc requirements

    glibc requirements

    • whitebox version: (latest, as of sept 2020)
    • Python version: 3.7
    • Operating System: Ubuntu 18.04

    Description

    I tried installing the latest version of Whitebox using: pip install whitebox

    It seems to install, but it won't run because I don't have glibc 2.29 ... (I can't even check the version) error: ./whitebox_tools: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./whitebox_tools)

    I'm running GLIBC 2.27... is upgrading to 2.29 really the only way to get whitebox working?

    opened by jchollingsworth 4
  • a bug in func (raster_to_vector_lines)

    a bug in func (raster_to_vector_lines)

    Description

    Hello! Mr.WU. When I turn a single pixel wide raster into a line vector, the previously continuous closed shape becomes a broken line segment. How to avoid this problem?

    code

    from WBT.whitebox_tools import WhiteboxTools
    
    if __name__ == "__main__":
        rasterPath = "/home/BE/results/cq_test_edge.tif"
        outputPath = "/home/BE/results/cq_test_edge4.shp"
        wbt = WhiteboxTools()
    
        wbt.raster_to_vector_lines(rasterPath, outputPath)
    

    image

    opened by SonwYang 3
  • CI: Add Python 3.10 and 3.11 jobs, weekly run

    CI: Add Python 3.10 and 3.11 jobs, weekly run

    A bit of CI maintenance:

    • Adds Python 3.10 and 3.11 jobs to the GitHub Action CI build matrix
    • It also adds a weekly run each Monday at 06:00 UTC and the ability to manually trigger the CI
    • Finally, it updates the checkout and setup-python actions to their latest versions.
    opened by EwoutH 2
Releases(v2.2.0)
  • v2.2.0(Oct 26, 2022)

  • v2.1.4(Jul 27, 2022)

  • v2.1.3(Jul 16, 2022)

  • v2.1.2(Feb 22, 2022)

  • v2.1.1(Feb 3, 2022)

  • v2.1.0(Feb 2, 2022)

  • v2.0.3(Sep 11, 2021)

  • v2.0.2(Sep 5, 2021)

  • v2.0.1(Aug 31, 2021)

  • v2.0.0(Aug 31, 2021)

  • v1.5.2(Aug 19, 2021)

  • v1.5.1(Jun 10, 2021)

    Note: The WBT binary URLs from https://whiteboxgeo.com keeps getting connection timed out error for GitHub Automated testing. Switching URL to backup URL https://github.com/giswqs/whitebox-bin.

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Jun 6, 2021)

  • v1.4.1(Apr 21, 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 Python 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 python 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)
Owner
Qiusheng Wu
Assistant Professor of Geography at the University of Tennessee, Knoxville
Qiusheng Wu
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
Color correction plugin for rasterio

rio-color A rasterio plugin for applying basic color-oriented image operations to geospatial rasters. Goals No heavy dependencies: rio-color is purpos

Mapbox 111 Nov 15, 2022
Geocode rows in a SQLite database table

Geocode rows in a SQLite database table

Chris Amico 225 Dec 08, 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

13 Jan 06, 2022
ColoringMapAlgorithm-CSP- - Graphical Coloring of Countries with Condition Satisfaction Algorithm

ColoringMapAlgorithm-CSP- Condition Satisfaction Algorithm Output Condition

Kerem TAN 2 Jan 10, 2022
Bacon - Band-limited Coordinate Networks for Multiscale Scene Representation

BACON: Band-limited Coordinate Networks for Multiscale Scene Representation Project Page | Video | Paper Official PyTorch implementation of BACON. BAC

Stanford Computational Imaging Lab 144 Dec 29, 2022
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
Raster processing benchmarks for Python and R packages

Raster processing benchmarks This repository contains a collection of raster processing benchmarks for Python and R packages. The tests cover the most

Krzysztof Dyba 13 Oct 24, 2022
Manipulation and analysis of geometric objects

Shapely Manipulation and analysis of geometric objects in the Cartesian plane. Shapely is a BSD-licensed Python package for manipulation and analysis

3.1k Jan 03, 2023
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
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
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
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
Python module and script to interact with the Tractive GPS tracker.

pyTractive GPS Python module and script to interact with the Tractive GPS tracker. Requirements Python 3 geopy folium pandas pillow usage: main.py [-h

Dr. Usman Kayani 3 Nov 16, 2022
Map Ookla server locations as a Kernel Density Estimation (KDE) geographic map plot.

Ookla Server KDE Plotting This notebook was created to map Ookla server locations as a Kernel Density Estimation (KDE) geographic map plot. Currently,

Jonathan Lo 1 Feb 12, 2022
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
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
The geospatial toolkit for redistricting data.

maup maup is the geospatial toolkit for redistricting data. The package streamlines the basic workflows that arise when working with blocks, precincts

Metric Geometry and Gerrymandering Group 60 Dec 05, 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
How to use COG's (Cloud optimized GeoTIFFs) with Rasterio

How to use COG's (Cloud optimized GeoTIFFs) with Rasterio According to Cogeo.org: A Cloud Opdtimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at

Marvin Gabler 8 Jul 29, 2022