Skip to main content

Provides numba framework for topographic analysis within the LSDTopoTools ecosystem. It aims to provdide full python access to the main algorithms of LSDTopoTools while avoiding the neeeds of c++. It does not replace or provide numba portage of the full LSDTopoTools, just the main one for quick use or quick developments

Project description

# lsdnumbatools

Provides numba framework for topographic analysis within the LSDTopoTools ecosystem. It aims to provdide full python access to the main algorithms of LSDTopoTools while avoiding the neeeds of c++. It does not replace or provide numba portage of the full LSDTopoTools, just the main one for quick use or quick developments.

License: Free software: MIT license

## What-Why-How?

Numba is a Just-in-time (JIT) compiler for python code, which means that it translates at runtime some pieces of code into assembly language using LLVM engine. It has the power to make some (straightforward) python functions as performant as C code under few conditions. Although it does not allow as much flexibility and power as C++ does, it is very powerful for function with simple data-structure (numpy arrays). The huge advantage is that it fits in the interpreted python language and allow very quick development/distribution of code without the need of compiling for different platform and making bindings between python and C, making it an ideal tool for (i) testing algorithms before implementing them in heavier languages and (ii) develop a light version of the LSDTopoTools framework usable in full-python when the full stack of LSDTopoTools are not needed.

## Features

So far, I implemented mostly core functions:

  • Computation of D8 neighbors, donors, … and topological order following Braun and Willett 2013 (i.e. stack order)

  • Some stack manipulations (isolating drainage basin, …)

  • Extraction of simple drainage network using area-threshold

  • Calculation of Drainage Area and chi (Perron and Royden 2013)

  • Some drainage divide isolation tools (WIP)

Next steps, unsorted:

  • more stack manipulations, like extracting basins following conditions

  • basic conversions row/col -> X/Y

  • more chi tools and S/A tools

  • Drainage divide ordering for Concavity paper

  • High-level interface

  • xsimlab interface

  • Multiple-flow routines

## Installation

If I start using this package more seriously, I will make a conda-forge package. Otherwise, clone this repository, and install the following dependencies: numba, numpy, matplotlib, pandas and it should do the trick. I recommend using conda as python environment manager.

## Quick Start

As a quick start, I added a jupyter notebook in the notebook folder.

## Credits

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

History

0.0.1 (2020-09-07)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lsdnumbatools-0.0.1.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

lsdnumbatools-0.0.1-py2.py3-none-any.whl (16.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file lsdnumbatools-0.0.1.tar.gz.

File metadata

  • Download URL: lsdnumbatools-0.0.1.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for lsdnumbatools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 787db7741f6784393be68bfdea8ed04cd76756edaa36c491b59f5b049f7b7c84
MD5 5ae0f1cac065c51e621900465986737e
BLAKE2b-256 05097db2da9ea347f0e32dff48b734422e031b3112cb4bbfbc5fdee3cc921e06

See more details on using hashes here.

File details

Details for the file lsdnumbatools-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: lsdnumbatools-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.0.post20200616 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for lsdnumbatools-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 784df07faebb81fa15b4d0f44f3eb52e772dd234e50942d8c9037fd6a4c1e23c
MD5 04d164b09526a018032e7469cf65e580
BLAKE2b-256 364257ec6260ec8bb9c638db9e1be8e277f4737b39abd4b2e5147d72d8be0694

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page