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
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
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
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
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
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
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
geemap - A Python package for interactive mapping with Google Earth Engine, ipyleaflet, and ipywidgets.

A Python package for interactive mapping with Google Earth Engine, ipyleaflet, and folium

Qiusheng Wu 2.4k Dec 30, 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

null 832 Dec 31, 2022