Understanding the processes that shape and reshape the earth's surface is a fundamental challenge in the geosciences. Numerical modeling—the glue between data and theory—is a key component of the effort to meet this challenge. The Community Surface Dynamics Modeling System (CSDMS) was formed to provide support for earth-surface dynamics modeling, and to accelerate the pace of discovery through software development, resource sharing, community coordination, knowledge exchange, and technical training.
The CSDMS approach is bottom-up: models, typically developed within the community, are nominated by the community for inclusion within the CSDMS Modeling Framework (CMF). The CMF provides loose, two-way coupling in a Python-based framework that can scale from an individual laptop to a high-performance computing environment. The CMF has a web-based front-end, the Web Modeling Tool (WMT), that's available for use by all community members.
The CMF is built on four key software technologies:
- Basic Model Interface. A Basic Model Interface (BMI), consisting of a common set of functions for initializing, running, and finalizing a model, is added to each model to be incorporated into the CMF.
- Standard Names. Given variables from two models, Standard Names provides a semantic matching mechanism for determining whether—and the degree to which—the variables refer to the same quantity.
- Babel. C, C++, Fortran, Java, and Python language bindings for a BMI-enabled model are generated by Babel.
- Python Modeling Toolkit. The Python Modeling Toolkit (PyMT) is the framework part of the CMF, allowing Babel-wrapped models to be coupled and run in a Python environment. PyMT includes tools for time interpolation, grid mapping, data exchange, and visualization.
In this presentation, I'll provide an overview of these core CSDMS software technologies, describing the problems they solve, how they benefit the community, and how they may accelerate scientific productivity. I'll include a Jupyter Notebook demonstration of using PyMT to interactively couple and run a landscape evolution model with a sediment transport model. I'll conclude with a list of issues still to be addressed by CSDMS.