Open Sustainable Technology

A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Browse accepted projects | Review proposed projects | Propose new project | Open Issues

Landlab

An open source Python package for numerical modeling of Earth surface dynamics.
https://github.com/landlab/landlab

Last synced: about 9 hours ago
JSON representation

Repository metadata

Landlab codebase, wiki, and tests

README

        

.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3776837.svg
:target: https://doi.org/10.5281/zenodo.3776837

.. image:: https://readthedocs.org/projects/landlab/badge/?version=latest
:target: https://landlab.readthedocs.org

.. image:: https://github.com/landlab/landlab/actions/workflows/test.yml/badge.svg
:target: https://github.com/landlab/landlab/actions/workflows/test.yml

.. image:: https://github.com/landlab/landlab/actions/workflows/lint.yml/badge.svg
:target: https://github.com/landlab/landlab/actions/workflows/lint.yml

.. image:: https://github.com/landlab/landlab/actions/workflows/test-notebooks.yml/badge.svg
:target: https://github.com/landlab/landlab/actions/workflows/test-notebooks.yml

.. image:: https://github.com/landlab/landlab/actions/workflows/docs.yml/badge.svg
:target: https://github.com/landlab/landlab/actions/workflows/docs.yml

.. image:: https://coveralls.io/repos/landlab/landlab/badge.png
:target: https://coveralls.io/r/landlab/landlab

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb

=======
Landlab
=======

What does Landlab do?
---------------------

.. start-intro

Landlab is an open-source Python-language package for numerical modeling of
Earth surface dynamics. It contains

* A gridding engine which represents the model domain. Regular and irregular
grids are supported.
* A library of process components, each of which represents a physical process
(e.g., generation of rain, erosion by flowing water). These components have
a common interface and can be combined based on a user's needs.
* Utilities that support general numerical methods, file input/output, and
visualization.

In addition Landlab contains a set of Jupyter notebook tutorials providing
an introduction to core concepts and examples of use.

Landlab was designed for disciplines that quantify Earth surface dynamics such
as geomorphology, hydrology, glaciology, and stratigraphy. It can also be used
in related fields. Scientists who use this type of model often build
their own unique model from the ground up, re-coding the basic building blocks
of their landscape model rather than taking advantage of codes that have
already been written. Landlab saves practitioners from the need for this kind
of re-invention by providing standardized components that they can re-use.

Watch the webinar `Landlab Toolkit Overview `_
at CSDMS to learn more.

.. end-intro

-----------

`Read the documentation on ReadTheDocs! `_

-----------

Installation
------------

To install the latest release of *landlab* using *pip*, simply run the following
in your terminal of choice:

.. code-block:: bash

$ pip install landlab

For a full description of how to install *Landlab*, including using *mamba*/*conda*,
please see the documentation for our `installation instructions`_.

.. _installation instructions: https://landlab.readthedocs.io/en/master/installation.html

Source code
-----------

If you would like to modify or contribute code to *Landlab* or use the very latest
development version, please see the documentation that describes how to
`install landlab from source`_.

.. _install landlab from source: https://landlab.readthedocs.io/en/master/install/developer_install.html

Are there any examples of using Landlab I can look at?
------------------------------------------------------

The Landlab package contains a directory, ``landlab/notebooks``, with
Jupyter Notebooks describing core concepts and giving examples of using components.
The file ``landlab/notebooks/welcome.ipynb`` provides a table of contents to
the notebooks and is the recommended starting place.
Additionally, there are a set of notebooks curated to teach physical processes
located in the directory ``landlab/notebooks/teaching``.

Run on Binder
`````````````

To launch an instance of
Binder and `explore the notebooks click here`_.

.. _explore the notebooks click here: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb

To launch a Binder instance that goes straight to the `teaching notebooks click here`_.

.. _teaching notebooks click here: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/teaching/welcome_teaching.ipynb

Run on EarthscapeHub
````````````````````

The Landlab notebooks can also be run on `EarthscapeHub`_.
Visit this link to learn how to sign up for a free account.
Explore the example notebooks on the
`lab`__ or `jupyter`__ Hub instance.
Or, use the teaching notebooks on the
`lab`__ or `jupyter`__ Hub instance.
Be sure to run all notebooks with the *CSDMS* kernel.

.. _EarthscapeHub: https://csdms.colorado.edu/wiki/JupyterHub
.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master
.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master
.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master
.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master

License
-------

*landlab* is licensed under the MIT License.

Citing Landlab
--------------

If you use any portion of Landlab, please see the documentation for our
`citation guidelines`_.

.. _citation guidelines: https://landlab.readthedocs.io/en/master/citing.html

Contact
-------

.. start-contact

The recommended way to contact the Landlab team is with a
`GitHub Issue `_.

* **Bug reports**: Please make an Issue describing the bug so we can address it, or work
with you to address it. Please try to provide a `minimal, reproducible example
`_.
* **Documentation**: If something in our documentation is not clear to you, please make an
issue describing the what isn't clear. Someone will tag
the most appropriate member of the core Landlab team. We will work to clarify
your question and revise the documentation so that it is clear for the next user.

Keep in touch with the latest *landlab* news by following us on `Twitter `_.

During workshops and clinics, we sometimes use the
`Landlab Slack channel `_.

.. end-contact

Citation (CITATION.cff)

# YAML 1.2
---
cff-version: "1.2.0"
message: "If you use this software, please cite it using these metadata."
abstract : "Landlab is an open-source Python-language package for numerical modeling of Earth surface dynamics."
type: software
authors:
  -
    family-names: Hutton
    given-names: Eric
    orcid: "https://orcid.org/0000-0002-5864-6459"
  -
    family-names: Barnhart
    given-names: Katy
    orcid: "https://orcid.org/0000-0001-5682-455X"
  -
    family-names: Hobley
    given-names: Dan
    orcid: "https://orcid.org/0000-0003-2371-0534"
  -
    family-names: Tucker
    given-names: Greg
    orcid: "https://orcid.org/0000-0003-0364-5800"
  -
    family-names: Nudurupati
    given-names: Sai
    orcid: "https://orcid.org/0000-0002-2090-7561"
  -
    family-names: Adams
    given-names: Jordan
    orcid: "https://orcid.org/0000-0003-0137-9879"
  -
    family-names: Gasparini
    given-names: Nicole
    orcid: "https://orcid.org/0000-0002-0803-3697"
  -
    family-names: Shobe
    given-names: Charlie
    orcid: "https://orcid.org/0000-0003-3015-1283"
  -
    family-names: Strauch
    given-names: Ronda
    orcid: "https://orcid.org/0000-0003-3093-8449"
  -
    family-names: Knuth
    given-names: Jenny
    orcid: "https://orcid.org/0000-0001-7066-7992"
  -
    family-names: Mouchene
    given-names: Margaux
    orcid: "https://orcid.org/0000-0002-8243-3517"
  -
    family-names: Lyons
    given-names: Nathan
    orcid: "https://orcid.org/0000-0001-6965-3374"
  -
    family-names: Litwin
    given-names: David
    orcid: "https://orcid.org/0000-0002-8097-4029"
  -
    family-names: Glade
    given-names: Rachel
    orcid: "https://orcid.org/0000-0002-0345-1953"
  -
    name: Giuseppecipolla95
  -
    family-names: Manaster
    given-names: Amanda
  -
    family-names: Abby
    given-names: Langston
  -
    family-names: Thyng
    given-names: Kristen
    orcid: "https://orcid.org/0000-0002-8746-614X"
  -
    family-names: Rengers
    given-names: Francis
    orcid: "https://orcid.org/0000-0002-1825-0943"
title: "landlab"
identifiers:
  -
    type: doi
    value: 10.5194/esurf-8-379-2020
    description: >-
      "Short communication: Landlab v2.0: A software package for
      Earth surface dynamics". Earth Surface Dynamics Discussions,
      May 2020, Volume 8, Issue 2
  -
    type: doi
    value: 10.5194/esurf-5-21-2017
    description: >-
      "Creative computing with Landlab: an open-source
       toolkit for building, coupling, and exploring
       two-dimensional numerical models of
       Earth-surface dynamics". Earth Surface Dynamics,
       January 2017, Volume 5, Issue 1
  -
    type: doi
    value: 10.5281/zenodo.3776837
    description: The versioned DOI for the version 2.0.1 of landlab.
  -
    type: doi
    value: 10.5281/zenodo.595872
    description: The concept DOI for the collection containing all versions of landlab.
repository-code: "https://github.com/landlab/landlab"
url: "https://landlab.readthedocs.io"
date-released: "2020-04-29"
keywords:
  - "bmi"
  - "component modeling"
  - "earth science"
  - "gridding engine"
  - "model coupling"
  - "numerical modeling"
license: MIT
doi: 10.5281/zenodo.595872
...

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 2 days ago

Total Commits: 7,967
Total Committers: 38
Avg Commits per committer: 209.658
Development Distribution Score (DDS): 0.555

Commits in past year: 610
Committers in past year: 10
Avg Commits per committer in past year: 61.0
Development Distribution Score (DDS) in past year: 0.423

Name Email Commits
Eric Hutton m****n@g****m 3542
Katy Barnhart k****t@u****v 1126
Dan Hobley d****y@g****m 1025
Greg Tucker g****r@c****u 854
Jordan Adams j****5@t****u 262
Sai Nudurupati s****u@u****u 257
Nicole M Gasparini n****r@g****m 228
dependabot[bot] 4****] 118
Charlie Shobe c****e@e****u 69
David Litwin d****n@p****t 62
Ronda Strauch r****h@u****u 49
Laurent Roberge l****e@t****u 46
Jenny Knuth i****o@g****m 44
Sebastien Lenard s****d@g****m 43
Margaux Mouchene m****e@l****t 40
Benjamin Campforts b****s@g****m 36
pre-commit-ci[bot] 6****] 30
Berkan M 4****5 28
Nathan Lyons n****s@g****m 27
Jeffrey Keck k****e@g****m 18
Rachel Glade r****e@g****m 12
Dylan Ward d****d@u****u 11
Giuseppecipolla95 3****5 11
Mark Piper m****r@c****u 6
Allison Pfeiffer p****f@u****u 6
Shelby Ahrendt 3****t 2
Jay Hariharan j****n@u****u 2
Amanda Manaster a****e@u****u 2
Benjamin Campforts b****a@b****n 2
root r****t@0****a 1
and 8 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 767
Total pull requests: 1,185
Average time to close issues: 3 months
Average time to close pull requests: 25 days
Total issue authors: 122
Total pull request authors: 55
Average comments per issue: 2.98
Average comments per pull request: 3.26
Merged pull request: 1,000
Bot issues: 0
Bot pull requests: 236

Past year issues: 54
Past year pull requests: 294
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 14 days
Past year issue authors: 24
Past year pull request authors: 21
Past year average comments per issue: 2.31
Past year average comments per pull request: 1.32
Past year merged pull request: 205
Past year bot issues: 0
Past year bot pull requests: 195

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/landlab/landlab

Top Issue Authors

  • kbarnhart (174)
  • SiccarPoint (118)
  • gregtucker (101)
  • mcflugen (68)
  • sebastien-lenard (22)
  • pfeiffea (15)
  • nicgaspar (12)
  • amanaster2 (10)
  • DavidLitwin (10)
  • saisiddu (9)
  • BCampforts (8)
  • cmshobe (8)
  • loroberge (7)
  • ChristinaB (7)
  • jadams15 (7)

Top Pull Request Authors

  • mcflugen (303)
  • dependabot[bot] (228)
  • kbarnhart (200)
  • gregtucker (139)
  • SiccarPoint (105)
  • DavidLitwin (22)
  • cmshobe (20)
  • BCampforts (16)
  • nathanlyons (15)
  • sebastien-lenard (14)
  • jennyknuth (13)
  • pre-commit-ci[bot] (8)
  • jadams15 (8)
  • pfeiffea (7)
  • saisiddu (7)

Top Issue Labels

  • enhancement (114)
  • bug (65)
  • question (25)
  • Landlab2.0 (19)
  • install (18)
  • documentation (11)
  • help wanted (9)
  • Epic (2)
  • testing (1)
  • wiki (1)
  • Hydroshare (1)
  • wontfix (1)
  • invalid (1)
  • duplicate (1)

Top Pull Request Labels

  • skip news (232)
  • dependencies (227)
  • python (24)
  • enhancement (10)
  • v2.7 (9)
  • Landlab2.0 (5)
  • bug (3)
  • documentation (1)
  • duplicate (1)
  • invalid (1)
  • github_actions (1)
  • Epic (1)

Package metadata

pypi.org: landlab

Open-source Python package for numerical modeling of Earth surface dynamics.

  • Homepage:
  • Documentation: https://landlab.readthedocs.io/
  • Licenses: The MIT License (MIT) ===================== Copyright (c) `2013` `The Landlab Team` Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Latest release: 2.7.0 (published 6 months ago)
  • Last Synced: 2024-05-10T09:06:07.989Z (1 day ago)
  • Versions: 89
  • Dependent Packages: 2
  • Dependent Repositories: 30
  • Downloads: 4,729 Last month
  • Docker Downloads: 141
  • Rankings:
    • Docker downloads count: 1.663%
    • Dependent repos count: 2.656%
    • Dependent packages count: 3.158%
    • Average: 3.182%
    • Downloads: 5.253%
  • Maintainers (6)
conda-forge.org: landlab

Landlab creates an environment in which scientists can build a numerical landscape model without having to code all of the individual components. Landscape models compute flows of mass, such as water, sediment, glacial ice, volcanic material, or landslide debris, across a gridded terrain surface. Landscape models have a number of commonalities, such as operating on a grid of points and routing material across the grid. Scientists who want to use a landscape model often build their own unique model from the ground up, re-coding the basic building blocks of their landscape model rather than taking advantage of codes that have already been written.

  • Homepage: http://landlab.github.io
  • Licenses: MIT
  • Latest release: 2.5.0 (published about 2 years ago)
  • Last Synced: 2024-05-10T09:06:12.361Z (1 day ago)
  • Versions: 23
  • Dependent Packages: 8
  • Dependent Repositories: 8
  • Rankings:
    • Dependent packages count: 7.088%
    • Forks count: 10.092%
    • Dependent repos count: 12.084%
    • Average: 12.854%
    • Stargazers count: 22.151%

Dependencies

.github/workflows/changelog.yml actions
  • actions/checkout v3 composite
.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/prerelease.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • docker/setup-qemu-action v1 composite
.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • docker/setup-qemu-action v1 composite
.github/workflows/test-notebooks.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/test.yml actions
  • AndreMiras/coveralls-python-action v20201129 composite
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/lint.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
.github/workflows/rebase_dependencies.yml actions
  • actions/checkout v3 composite
docs/requirements.in pypi
  • furo *
  • sphinx >=4
  • sphinx-copybutton *
  • sphinx-inline-tabs *
  • sphinx-jinja *
  • sphinxcontrib.towncrier *
  • tomli *
  • towncrier *
docs/requirements.txt pypi
  • alabaster ==0.7.13
  • asttokens ==2.2.1
  • attrs ==22.2.0
  • babel ==2.11.0
  • backcall ==0.2.0
  • beautifulsoup4 ==4.11.2
  • bleach ==6.0.0
  • certifi ==2023.7.22
  • charset-normalizer ==3.0.1
  • click ==8.1.3
  • click-default-group ==1.2.2
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • docutils ==0.18.1
  • entrypoints ==0.4
  • executing ==1.2.0
  • fastjsonschema ==2.16.2
  • furo ==2023.8.19
  • idna ==3.4
  • imagesize ==1.4.1
  • incremental ==22.10.0
  • ipython ==8.14.0
  • jedi ==0.18.2
  • jinja2 ==3.1.2
  • jsonschema ==4.17.3
  • jupyter-client ==8.3.0
  • jupyter-core ==5.2.0
  • jupyterlab-pygments ==0.2.2
  • markupsafe ==2.1.2
  • matplotlib-inline ==0.1.6
  • mistune ==2.0.5
  • nbclient ==0.7.2
  • nbconvert ==7.2.9
  • nbformat ==5.9.2
  • nbsphinx ==0.9.3
  • packaging ==23.0
  • pandoc ==2.3
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • platformdirs ==3.0.0
  • plumbum ==1.8.1
  • ply ==3.11
  • prompt-toolkit ==3.0.36
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pygments ==2.15.0
  • pyrsistent ==0.19.3
  • python-dateutil ==2.8.2
  • pytz ==2022.7.1
  • pyzmq ==25.0.0
  • requests ==2.31.0
  • six ==1.16.0
  • snowballstemmer ==2.2.0
  • soupsieve ==2.4
  • sphinx ==7.2.4
  • sphinx-basic-ng ==1.0.0b1
  • sphinx-copybutton ==0.5.2
  • sphinx-inline-tabs ==2023.4.21
  • sphinx-jinja ==2.0.2
  • sphinxcontrib-applehelp ==1.0.4
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.1
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.9
  • sphinxcontrib-towncrier ==0.3.2a0
  • stack-data ==0.6.2
  • tabulate ==0.9.0
  • tinycss2 ==1.2.1
  • tomli ==2.0.1
  • tornado ==6.3.3
  • towncrier ==23.6.0
  • traitlets ==5.9.0
  • urllib3 ==1.26.14
  • wcwidth ==0.2.6
  • webencodings ==0.5.1
environment.yml pypi
notebooks/requirements.in pypi
  • bmi-topography >=0.5,
  • dask *
  • holoviews *
  • jupyter *
  • mesa >1
notebooks/requirements.txt pypi
  • 150 dependencies
pyproject.toml pypi
  • bmipy *
  • matplotlib *
  • netcdf4 *
  • numpy >=1.20
  • pandas *
  • pyshp != 2.3.0
  • pyyaml *
  • rich-click *
  • scipy *
  • statsmodels *
  • xarray >= 0.16
requirements-testing.in pypi
  • coveralls * test
  • hypothesis * test
  • pytest * test
  • pytest-benchmark * test
  • pytest-cov * test
  • pytest-datadir * test
  • pytest-xdist * test
requirements.in pypi
  • bmipy *
  • matplotlib *
  • netcdf4 *
  • numpy >=1.20
  • pandas *
  • pyshp *
  • pyyaml *
  • rich-click *
  • scipy *
  • statsmodels *
  • xarray >=0.16
requirements.txt pypi
  • black ==23.1.0
  • bmipy ==2.0
  • certifi ==2023.7.22
  • cftime ==1.6.2
  • click ==8.1.3
  • contourpy ==1.0.7
  • cycler ==0.11.0
  • fonttools ==4.38.0
  • jinja2 ==3.1.2
  • kiwisolver ==1.4.4
  • markdown-it-py ==2.2.0
  • markupsafe ==2.1.2
  • matplotlib ==3.7.2
  • mdurl ==0.1.2
  • mypy-extensions ==1.0.0
  • netcdf4 ==1.6.4
  • numpy ==1.25.2
  • packaging ==23.0
  • pandas ==2.0.3
  • pathspec ==0.11.0
  • patsy ==0.5.3
  • pillow ==9.4.0
  • platformdirs ==3.0.0
  • pygments ==2.15.0
  • pyparsing ==3.0.9
  • pyshp ==2.3.1
  • python-dateutil ==2.8.2
  • pytz ==2022.7.1
  • pyyaml ==6.0.1
  • rich ==13.3.1
  • rich-click ==1.6.1
  • scipy ==1.11.2
  • six ==1.16.0
  • statsmodels ==0.14.0
  • tzdata ==2023.3
  • xarray ==2023.8.0
setup.py pypi

Score: 18.70190674072445