Scabbard
Python package to design, use or visualise topographic analysis, landscape evolution models and hydro/morphodynamics simulations. Among other, home of GraphFlood (CPU and GPU) and CHONK. This framework is also building a GPU backend for general purpose landscape modeling.
Built on the shoulder of giants
scabbard started as a personal codebase and evolved toward a fully-fledge numerical Framework. It uses the robust and battle-tested scientific python stack (e.g. numpy, scipy, numba, ...) and geospatial python (e.g. rasterio, geopandas, libgdal, ...). It also relies on multiple domain-specific libraries to built a future-proof and community-compatible backend: libtopotoolbox and pytopotoolbox, fastscapelib, LSDTopoTool as well as my own collection of c++ and numba routines. All the GPU backends use taichi to ensure cross-platform/hardware compatibility and user-friendly code.
- Free software: MIT license
How to install
pip install pyscabbard
As simple as that. Thanks to github actions allowing smooth CI, you do not have to compile anything yourself.
NOTE: pytopotoolbox official installation procedure is still WIP. I provide binary wheels within this project (./wheels/pytopotoolbox ). At first import, scabbard will provide instruction (i.e. a single command line to run).
Features
-
General geomorphic routines
-
Graphflood: Efficient hydrodynamic modelling, tailored for large scale. CPU and GPU version. -
CHONK/trackscape/popscape: Long term Landscape Evolution Models.
Usage
Documentation is WIP and will be online soon
Credits
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _audreyr/cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage
======= History
0.0.16 (2025-01-16)
- Updating some calls for legacy graphflood
- Adding some steenbok routines (LEM, neighbouring)
- Improving the geometry module
- Improving CPU hillshading
- minor fixes and additions
0.0.15 (2024-12-08)
- Fixing the new import system for legacy graphflood
- Renamed graphflood.py to legacy_graphflood.py
0.0.14 (2024-11-20)
- Small fixes on the boundary condition helpers
0.0.13 (2024-11-20)
- Adding an option for changing the exponent in Riverdale friction equation (e.g. migrating from manning to chezy)
0.0.12 (2024-11-20)
- Adapting the install process to pip topotoolbox
- Migrating to new ttb
- Minor fixes and additions
- Adding the start of a multi-backend unified graphflood interface
0.0.11 (2024-11-05)
- Loads of minor fixes in the install process
- Adding an hdf5 io/helper
- Refactor part of the ray tracing 3D plotter
- Adding orthographic projection
0.0.9 (2024-10-25)
- More fixes on the setup process
- Added a simple GPU ray tracing engine for 3D plots
- Started a unified interface for graphflood
0.0.8 (2024-10-15)
- Cleaning the install process
- Removing problematic legacy imports
- Trimming requirements
- Deprecating older tools relying on packages I do not use anymore
0.0.5 - 0.0.7 (2024-10-15)
- Total refactoring. As Simple as that.
scabbardis the main tool now, it uses multiple backendsDAGGER,pytopotoolbox,fastscapelib,numbaandtaichi
0.0.3 - 0.0.4 (2023-10-23)
- Fixing couple of bugs on the grid
- Experimental support for DAGGER's experimental stuff
- Adding environment object (WIP, future main structure)
0.0.2 (2023-07-31)
- Adding drainage divide quick extraction tools
- Fixing sea_level/Z0 stuff
0.0.1 (2023-07-25)
- First release on PyPI.
- Adding tools for quick river extraction
- Started a big behind-the-scene refactoring and standardisation (invisible at top level)
- Maintenance and bug fixes
Metadata
Release files for pyscabbard 0.0.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyscabbard-0.0.16.tar.gz | 116.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyscabbard-0.0.16-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 286.4 kB
Release files / pyscabbard-0.0.16.tar.gz
| Download URL | pyscabbard-0.0.16.tar.gz |
|---|---|
| Size | 116.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c183f3bda0eb2131286cf27dbafb5c35cbbb169bef5c7f046709cb8d346b35b
|
|
BLAKE2b-256 checksum How to use checksums |
6f6865dc2b69bd43443434aa96db380e7312570da336a1a1cb0906ae43a9466e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.10
|
Release files / pyscabbard-0.0.16-py2.py3-none-any.whl
| Download URL | pyscabbard-0.0.16-py2.py3-none-any.whl |
|---|---|
| Size | 169.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
0c7b6cbde1999ba1e9e3c2bb24635ac50cc1714f235a5ef9ad445a60ccb47d5f
|
|
BLAKE2b-256 checksum How to use checksums |
8d555671bf89467d16d2602a33e43a5449ee021ece0d0a1231d8d19df38d5d28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.10
|
Security for pyscabbard 0.0.16
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.