Pymt
A Python toolkit for running and coupling Earth surface models
Install / Use
/learn @csdms/PymtREADME
|PYMT|
The Python Modeling Toolkit (pymt)
|Build Status| |License| |Code Style| |Documentation Status| |Coverage Status| |Conda Version| |Conda Downloads| |Binder|
Quick links:
User documentation <https://pymt.readthedocs.io/>_Installation instructions <https://pymt.readthedocs.io/en/latest/install.html>_List of available models <https://pymt.readthedocs.io/en/latest/models.html>_
pymt is an Open Source Python package, developed by the
Community Surface Dynamics Modeling System <https://csdms.colorado.edu>_
(CSDMS), that provides the necessary tools used for the coupling of models
that expose the
Basic Model Interface <https://bmi.readthedocs.io>_
(BMI). It contains:
- Tools necessary for coupling models of disparate time and space scales (including grid mappers)
- Time-steppers that coordinate the sequencing of coupled models
- Exchange of data between BMI-enabled models
- Wrappers that automatically load BMI-enabled models into the PyMT framework
- Utilities that support open-source interfaces (UGRID, SGRID, CSDMS Standard Names, etc.)
- A collection of community-submitted models, written in a variety of programming languages, from a variety of process domains - but all usable from within the Python programming language
- A plug-in framework for adding additional BMI-enabled models to the framework
What does it look like? Here is an example of a simple pymt program that couples a Waves model with a Coastline Evolution model.
.. code-block:: python
from pymt.models import Cem, Waves
waves = Waves()
cem = Cem()
waves.initialize(*waves.setup())
cem.initialize(*cem.setup())
for time in range(1000):
waves.update()
angle = waves.get_value("wave_angle")
cem.set_value("wave_angle", angle)
cem.update()
pymt is an element of the CSDMS Workbench_,
an integrated system of software tools, technologies, and standards
for building and coupling models.
This work is supported by the National Science Foundation
under Grant No. 1831623_,
Community Facility Support:
The Community Surface Dynamics Modeling System (CSDMS).
.. _CSDMS Workbench: https://csdms.colorado.edu/wiki/Workbench .. _1831623: https://nsf.gov/awardsearch/showAward?AWD_ID=1831623
.. |PYMT| image:: https://github.com/csdms/pymt/raw/master/docs/_static/pymt-logo-header-text.png :target: https://pymt.readthedocs.org/ .. |Build Status| image:: https://github.com/csdms/pymt/actions/workflows/test.yml/badge.svg :target: https://github.com/csdms/pymt/actions/workflows/test.yml .. |License| image:: https://img.shields.io/badge/License-MIT-yellow.svg :target: https://opensource.org/licenses/MIT .. |Code Style| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/csdms/pymt/actions/workflows/black.yml .. |Documentation Status| image:: https://readthedocs.org/projects/pymt/badge/?version=latest :target: https://pymt.readthedocs.io/en/latest/?badge=latest .. |Coverage Status| image:: https://coveralls.io/repos/github/csdms/pymt/badge.svg?branch=master :target: https://coveralls.io/github/csdms/pymt?branch=master .. |Conda Version| image:: https://anaconda.org/conda-forge/pymt/badges/version.svg :target: https://anaconda.org/conda-forge/pymt .. |Conda Downloads| image:: https://anaconda.org/conda-forge/pymt/badges/downloads.svg :target: https://anaconda.org/conda-forge/pymt .. |Binder| image:: https://static.mybinder.org/badge_logo.svg :target: https://static.mybinder.org/badge_logo.svg
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
99.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
344.4kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
