pyscabbard


Namepyscabbard JSON
Version 0.0.15 PyPI version JSON
download
home_pagehttps://github.com/bgailleton/scabbard
SummarySuite of Hydrodynamic, topographic analysis, Landscape Evolution model and visualisation tools
upload_time2024-12-09 08:59:40
maintainerNone
docs_urlNone
authorBoris Gailleton
requires_python>=3.10
licenseMIT license
keywords scabbard
VCS
bugtrack_url
requirements cffi charset_normalizer click cmcrameri Cython dagger genapi hypothesis mathutils matplotlib numba numpy Pillow platformdirs plotly pooch psutil pybind11 PyYAML rasterio scipy setuptools Sphinx taichi thread
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Scabbard

<!-- 
.. image:: https://img.shields.io/pypi/v/scabbard.svg
        :target: https://pypi.python.org/pypi/scabbard

.. image:: https://readthedocs.org/projects/scabbard/badge/?version=latest
        :target: https://scabbard.readthedocs.io/en/latest/?version=latest
        :alt: Documentation Status -->



Python package to design, use or visualise topographic analysis, landscape evolution models and hydro/morphodynamics simulations. Among other, home of [GraphFlood](https://egusphere.copernicus.org/preprints/2024/egusphere-2024-1239/) (`CPU` and `GPU`) and [`CHONK`](https://gmd.copernicus.org/articles/17/71/2024/). 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`](https://github.com/TopoToolbox), [`fastscapelib`](https://fastscapelib.readthedocs.io/en/latest/), [`LSDTopoTool`](https://lsdtopotools.github.io/) as well as my own collection of `c++` and `numba` routines. All the GPU backends use [`taichi`](https://docs.taichi-lang.org/) to ensure cross-platform/hardware compatibility and user-friendly code.


* Free software: MIT license
<!-- * Documentation: https://scabbard.readthedocs.io. -->

## 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](https://github.com/bgailleton/scabbard/tree/main/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.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.
* `scabbard` is the main tool now, it uses multiple backends `DAGGER`, `pytopotoolbox`, `fastscapelib`, `numba` and `taichi`


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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bgailleton/scabbard",
    "name": "pyscabbard",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "scabbard",
    "author": "Boris Gailleton",
    "author_email": "boris.gailleton@univ-rennes.fr",
    "download_url": "https://files.pythonhosted.org/packages/42/c6/fa737f0e91d4ce743a70cd6d6b02baf75c40bddbf60fdeba271b1bbde079/pyscabbard-0.0.15.tar.gz",
    "platform": null,
    "description": "# Scabbard\n\n<!-- \n.. image:: https://img.shields.io/pypi/v/scabbard.svg\n        :target: https://pypi.python.org/pypi/scabbard\n\n.. image:: https://readthedocs.org/projects/scabbard/badge/?version=latest\n        :target: https://scabbard.readthedocs.io/en/latest/?version=latest\n        :alt: Documentation Status -->\n\n\n\nPython package to design, use or visualise topographic analysis, landscape evolution models and hydro/morphodynamics simulations. Among other, home of [GraphFlood](https://egusphere.copernicus.org/preprints/2024/egusphere-2024-1239/) (`CPU` and `GPU`) and [`CHONK`](https://gmd.copernicus.org/articles/17/71/2024/). This framework is also building a `GPU` backend for general purpose landscape modeling.\n\n\n### Built on the shoulder of giants\n\n`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`](https://github.com/TopoToolbox), [`fastscapelib`](https://fastscapelib.readthedocs.io/en/latest/), [`LSDTopoTool`](https://lsdtopotools.github.io/) as well as my own collection of `c++` and `numba` routines. All the GPU backends use [`taichi`](https://docs.taichi-lang.org/) to ensure cross-platform/hardware compatibility and user-friendly code.\n\n\n* Free software: MIT license\n<!-- * Documentation: https://scabbard.readthedocs.io. -->\n\n## How to install\n\n\n`pip install pyscabbard`\n\nAs simple as that. Thanks to github actions allowing smooth CI, you do not have to compile anything yourself.\n\n**NOTE**: `pytopotoolbox` official installation procedure is still WIP. I provide binary wheels within this project ([./wheels/pytopotoolbox](https://github.com/bgailleton/scabbard/tree/main/wheels/pytopotoolbox) ). At first import, `scabbard` will provide instruction (i.e. a single command line to run).\n\n\n## Features\n\n* General geomorphic routines\n\n* `Graphflood`: Efficient hydrodynamic modelling, tailored for large scale. CPU and GPU version.\n\n* `CHONK/trackscape/popscape`: Long term Landscape Evolution Models.\n\n\n## Usage\n\nDocumentation is WIP and will be online soon\n\n\n## Credits\n\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.0.15 (2024-12-08)\n-----------------------\n* Fixing the new import system for legacy graphflood\n* Renamed graphflood.py to legacy_graphflood.py\n\n0.0.14 (2024-11-20)\n-----------------------\n* Small fixes on the boundary condition helpers\n\n0.0.13 (2024-11-20)\n-----------------------\n* Adding an option for changing the exponent in Riverdale friction equation (e.g. migrating from manning to chezy)\n\n0.0.12 (2024-11-20)\n-----------------------\n\n* Adapting the install process to pip topotoolbox\n* Migrating to new ttb\n* Minor fixes and additions\n* Adding the start of a multi-backend unified graphflood interface\n\n\n0.0.11 (2024-11-05)\n-----------------------\n\n* Loads of minor fixes in the install process\n* Adding an hdf5 io/helper\n* Refactor part of the ray tracing 3D plotter\n* Adding orthographic projection\n\n0.0.9 (2024-10-25)\n--------------------------\n\n* More fixes on the setup process\n* Added a simple GPU ray tracing engine for 3D plots\n* Started a unified interface for graphflood \n\n0.0.8 (2024-10-15)\n--------------------------\n\n* Cleaning the install process\n* Removing problematic legacy imports\n* Trimming requirements\n* Deprecating older tools relying on packages I do not use anymore\n\n0.0.5 - 0.0.7 (2024-10-15)\n--------------------------\n\n* Total refactoring. As Simple as that.\n* `scabbard` is the main tool now, it uses multiple backends `DAGGER`, `pytopotoolbox`, `fastscapelib`, `numba` and `taichi`\n\n\n0.0.3 - 0.0.4 (2023-10-23)\n--------------------------\n\n* Fixing couple of bugs on the grid\n* Experimental support for DAGGER's experimental stuff\n* Adding environment object (WIP, future main structure)\n\n0.0.2 (2023-07-31)\n------------------\n\n* Adding drainage divide quick extraction tools\n* Fixing sea_level/Z0 stuff \n\n0.0.1 (2023-07-25)\n------------------\n\n* First release on PyPI.\n* Adding tools for quick river extraction\n* Started a big behind-the-scene refactoring and standardisation (invisible at top level)\n* Maintenance and bug fixes\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "Suite of Hydrodynamic, topographic analysis, Landscape Evolution model and visualisation tools",
    "version": "0.0.15",
    "project_urls": {
        "Homepage": "https://github.com/bgailleton/scabbard"
    },
    "split_keywords": [
        "scabbard"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a90fd028bac12dd4cdff1ff0934de262249d93b13e49db1859b64e26b7dda1ca",
                "md5": "6515e2d7494e87b88381ae501e7dcf5f",
                "sha256": "8a0c490040a152e97c7795181d3854ec85e1d58c48d3a3271ac735164c0c8908"
            },
            "downloads": -1,
            "filename": "pyscabbard-0.0.15-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6515e2d7494e87b88381ae501e7dcf5f",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 166976,
            "upload_time": "2024-12-09T08:59:38",
            "upload_time_iso_8601": "2024-12-09T08:59:38.582947Z",
            "url": "https://files.pythonhosted.org/packages/a9/0f/d028bac12dd4cdff1ff0934de262249d93b13e49db1859b64e26b7dda1ca/pyscabbard-0.0.15-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42c6fa737f0e91d4ce743a70cd6d6b02baf75c40bddbf60fdeba271b1bbde079",
                "md5": "9ff5ad92f6a8cd48b41b79f2cd0782a3",
                "sha256": "2dbfb3189a67bb9326bf77791ea85214f4ddcf15ff5e4b04677cb33826b3cc0f"
            },
            "downloads": -1,
            "filename": "pyscabbard-0.0.15.tar.gz",
            "has_sig": false,
            "md5_digest": "9ff5ad92f6a8cd48b41b79f2cd0782a3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 114858,
            "upload_time": "2024-12-09T08:59:40",
            "upload_time_iso_8601": "2024-12-09T08:59:40.250968Z",
            "url": "https://files.pythonhosted.org/packages/42/c6/fa737f0e91d4ce743a70cd6d6b02baf75c40bddbf60fdeba271b1bbde079/pyscabbard-0.0.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-09 08:59:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bgailleton",
    "github_project": "scabbard",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "cffi",
            "specs": [
                [
                    ">=",
                    "1.17.1"
                ]
            ]
        },
        {
            "name": "charset_normalizer",
            "specs": [
                [
                    ">=",
                    "3.3.2"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.1.7"
                ]
            ]
        },
        {
            "name": "cmcrameri",
            "specs": [
                [
                    ">=",
                    "1.9"
                ]
            ]
        },
        {
            "name": "Cython",
            "specs": [
                [
                    ">=",
                    "3.0.11"
                ]
            ]
        },
        {
            "name": "dagger",
            "specs": [
                [
                    ">=",
                    "0.0.1"
                ]
            ]
        },
        {
            "name": "genapi",
            "specs": [
                [
                    ">=",
                    "0.0.8"
                ]
            ]
        },
        {
            "name": "hypothesis",
            "specs": [
                [
                    ">=",
                    "6.115.3"
                ]
            ]
        },
        {
            "name": "mathutils",
            "specs": [
                [
                    ">=",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.60.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.19.0"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    ">=",
                    "11.0.0"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": [
                [
                    ">=",
                    "4.3.6"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    ">=",
                    "5.24.1"
                ]
            ]
        },
        {
            "name": "pooch",
            "specs": [
                [
                    ">=",
                    "1.8.2"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "pybind11",
            "specs": [
                [
                    ">=",
                    "2.12.0"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    ">=",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "rasterio",
            "specs": [
                [
                    ">=",
                    "1.3.11"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "73.0.1"
                ]
            ]
        },
        {
            "name": "Sphinx",
            "specs": [
                [
                    ">=",
                    "8.1.3"
                ]
            ]
        },
        {
            "name": "taichi",
            "specs": [
                [
                    ">=",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "thread",
            "specs": [
                [
                    ">=",
                    "2.0.5"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "pyscabbard"
}
        
Elapsed time: 0.69179s