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

Landlab

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

Category: Natural Resources
Sub Category: Soil and Land

Keywords from Contributors

geoscience particles archiving observation transformer measurements numerical-modeling projections climate-model mesh

Last synced: about 16 hours ago
JSON representation

Repository metadata

Landlab codebase, wiki, and tests

README.md

DOI
Documentation
Coverage
Testing
Lint

Landlab

What does Landlab do?

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.


Read the documentation on ReadTheDocs!


Installation

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

$ pip install landlab

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

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.

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.

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

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.

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.

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.

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.csdms.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: 6 days ago

Total Commits: 9,025
Total Committers: 40
Avg Commits per committer: 225.625
Development Distribution Score (DDS): 0.535

Commits in past year: 988
Committers in past year: 12
Avg Commits per committer in past year: 82.333
Development Distribution Score (DDS) in past year: 0.306

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

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 806
Total pull requests: 1,405
Average time to close issues: 3 months
Average time to close pull requests: 25 days
Total issue authors: 136
Total pull request authors: 64
Average comments per issue: 2.92
Average comments per pull request: 3.03
Merged pull request: 1,113
Bot issues: 0
Bot pull requests: 348

Past year issues: 43
Past year pull requests: 233
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 15 days
Past year issue authors: 22
Past year pull request authors: 21
Past year average comments per issue: 1.44
Past year average comments per pull request: 1.61
Past year merged pull request: 117
Past year bot issues: 0
Past year bot pull requests: 116

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

Top Issue Authors

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

Top Pull Request Authors

  • mcflugen (377)
  • dependabot[bot] (339)
  • kbarnhart (200)
  • gregtucker (142)
  • SiccarPoint (105)
  • DavidLitwin (22)
  • cmshobe (20)
  • BCampforts (16)
  • nathanlyons (15)
  • sebastien-lenard (14)
  • jennyknuth (13)
  • angelmons (10)
  • pfeiffea (9)
  • pre-commit-ci[bot] (9)
  • jadams15 (8)

Top Issue Labels

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

Top Pull Request Labels

  • skip news (367)
  • dependencies (338)
  • python (24)
  • enhancement (10)
  • v2.7 (9)
  • Landlab2.0 (5)
  • bug (3)
  • github_actions (2)
  • documentation (1)
  • duplicate (1)
  • invalid (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: MIT
  • Latest release: 2.9.2 (published 6 months ago)
  • Last Synced: 2025-04-25T14:35:39.147Z (1 day ago)
  • Versions: 93
  • Dependent Packages: 3
  • Dependent Repositories: 30
  • Downloads: 10,817 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 (3)
proxy.golang.org: github.com/landlab/landlab

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/landlab/landlab#section-documentation
  • Licenses: mit
  • Latest release: v2.9.2+incompatible (published 6 months ago)
  • Last Synced: 2025-04-25T14:35:38.710Z (1 day ago)
  • Versions: 76
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.528%
    • Average: 6.747%
    • Dependent repos count: 6.966%
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: https://landlab.github.io
  • Licenses: MIT
  • Latest release: 2.5.0 (published about 3 years ago)
  • Last Synced: 2025-04-25T14:35:43.502Z (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: 19.674053240933212