Workbench: Difference between revisions

From CSDMS
(Stub for CSDMS Workbench page)
 
m (→‎Data Components: add link to Tian's GMD paper)
 
(23 intermediate revisions by 2 users not shown)
Line 2: Line 2:


The ''CSDMS Workbench'' is the integrated system of software tools, technologies, and standards
The ''CSDMS Workbench'' is the integrated system of software tools, technologies, and standards
developed by CSDMS for designing, building, interfacing, and coupling models.
developed by CSDMS for building, interfacing, coupling, and running models.
The CSDMS Workbench consists of five core elements:
Each element of the CSDMS Workbench is developed as open source software and released to the community under the MIT License.
The CSDMS Workbench consists of the core elements listed below.


# [[BMI_Description|Basic Model Interface (BMI)]]
== Basic Model Interface ==
# Standard Names (CSN)
The [[BMI_Description|Basic Model Interface]] (BMI) is a set of functions that standardizes how numerical models can be queried, modified, and run. A model with a BMI exposes the same set of functions, no matter which language the model is written in. While a BMI can be specified for any language, CSDMS currently supports C, C++, Fortran, Java, and Python.
# Babelizer
[[https://bmi.readthedocs.io documentation], [https://github.com/csdms/bmi source repository]]
# Python Modeling Toolkit (PyMT)
# Landlab


The Basic Model Interface (BMI) does this...
== Standard Names ==
CSDMS [[CSDMS_Standard_Names|Standard Names]] (CSN) provide a comprehensive set of naming rules and patterns that are not specific to any particular modeling domain. CSN were designed with features such as parsability and natural alphabetical grouping. CSN consist of an object part and a quantity/attribute part; the quantity part may also have an operation prefix with multiple operations.
[[https://standard-names.readthedocs.io documentation], [https://github.com/csdms/standard_names source repository]]


<div class=AutoScaleImage>[[ File:Bmi-logo-lowercase.png | 250 px | right ]]<div>
== Babelizer ==
The [[Babelizer]] is a utility for wrapping models that expose a BMI so they can be imported as Python packages. Within Python, these models, regardless of their core language, appear as classes. Users are then able to run models interactively through the Python command line or Jupyter Notebook, and programmatically through Python.
[[https://babelizer.readthedocs.io documentation], [https://github.com/csdms/babelizer source repository]]


Standard Names do that...
== Python Modeling Toolkit ==
The [[PyMT|Python Modeling Toolkit]] (PyMT) provides the tools needed for coupling models that expose a BMI. PyMT provides utilities for coupling models of disparate time and space scales, a grid interpolator, unit conversions, a sample collection of earth surface processes models, and an extensible plug-in framework for adding new models.
[[https://pymt.readthedocs.io documentation], [https://github.com/csdms/pymt source repository]]


Babelizer ...
== Landlab ==
[[Landlab]] is a Python library that allows users to easily build unique earth surface processes models to address specific hypotheses. The Landlab library contains gridding engines for building regular and irregular grids, process components that act on grid variables, tools for storing and sharing data among the grid and components, and plotting and analysis tools.  
[[https://landlab.readthedocs.io documentation], [https://github.com/landlab/landlab source repository]]


<div class=AutoScaleImage>[[ File:babelizer-logo-lowercase.png | 225 px | right ]]<div>
==Data Components==
[[DataComponents|Data components]] are datasets or data formats that are wrapped with the BMI so they can be imported as Python packages. As such these data components can be called in for example the PyMT, and coupled to models. Read all about them in a [https://gmd.copernicus.org/articles/17/2165/2024/ paper by Tian Gan and friends]. [ [[DataComponents | source repository]] ]


The Python Modeling Tool (PyMT) ...


<div class=AutoScaleImage>[[ File:pymt-logo-lowercase.png | 250 px | right ]]<div>
Landlab ...
<div class=AutoScaleImage>[[ File:landlab-logo-lowercase.png | 250 px | right ]]<div>


To learn more about the CSDMS Workbench,
To learn more about the CSDMS Workbench,
visit the individual product pages linked above,
visit the individual product pages linked above,
or reach out to us through the CSDMS Help Desk to get in touch with a CSDMS staff member.
or reach out to us through the [https://csdms.github.io/help-desk CSDMS Help Desk],
 
or email us at [mailto:csdms@colorado.edu csdms@colorado.edu].
---
 
The CSDMS Workbench is the integrated system of software tools, technologies, and standards for performing model coupling in CSDMS.
 
The CSDMS Workbench is the integrated system of software tools, technologies, and standards for designing, building, interfacing, and coupling models in CSDMS.
 
The CSDMS Workbench is the
collection
framework
ecosystem
(all-encompassing)
system
interlocking pieces
of software tools, technologies, and standards
 
for modeling, and model coupling, in CSDMS
 
for designing, building, running, and coupling models in CSDMS
 
for designing, building, connecting, and coupling models in CSDMS
 
for designing, building, interfacing, and coupling models in CSDMS
 
that encompass the
perform
used to perform
allow model coupling
for performing model coupling
CSDMS
in CSDMS
in the CSDMS ecosystem

Latest revision as of 14:50, 15 March 2024

The CSDMS Workbench

The CSDMS Workbench is the integrated system of software tools, technologies, and standards developed by CSDMS for building, interfacing, coupling, and running models. Each element of the CSDMS Workbench is developed as open source software and released to the community under the MIT License. The CSDMS Workbench consists of the core elements listed below.

Basic Model Interface

The Basic Model Interface (BMI) is a set of functions that standardizes how numerical models can be queried, modified, and run. A model with a BMI exposes the same set of functions, no matter which language the model is written in. While a BMI can be specified for any language, CSDMS currently supports C, C++, Fortran, Java, and Python. [documentation, source repository]

Standard Names

CSDMS Standard Names (CSN) provide a comprehensive set of naming rules and patterns that are not specific to any particular modeling domain. CSN were designed with features such as parsability and natural alphabetical grouping. CSN consist of an object part and a quantity/attribute part; the quantity part may also have an operation prefix with multiple operations. [documentation, source repository]

Babelizer

The Babelizer is a utility for wrapping models that expose a BMI so they can be imported as Python packages. Within Python, these models, regardless of their core language, appear as classes. Users are then able to run models interactively through the Python command line or Jupyter Notebook, and programmatically through Python. [documentation, source repository]

Python Modeling Toolkit

The Python Modeling Toolkit (PyMT) provides the tools needed for coupling models that expose a BMI. PyMT provides utilities for coupling models of disparate time and space scales, a grid interpolator, unit conversions, a sample collection of earth surface processes models, and an extensible plug-in framework for adding new models. [documentation, source repository]

Landlab

Landlab is a Python library that allows users to easily build unique earth surface processes models to address specific hypotheses. The Landlab library contains gridding engines for building regular and irregular grids, process components that act on grid variables, tools for storing and sharing data among the grid and components, and plotting and analysis tools. [documentation, source repository]

Data Components

Data components are datasets or data formats that are wrapped with the BMI so they can be imported as Python packages. As such these data components can be called in for example the PyMT, and coupled to models. Read all about them in a paper by Tian Gan and friends. [ source repository ]


To learn more about the CSDMS Workbench, visit the individual product pages linked above, or reach out to us through the CSDMS Help Desk, or email us at csdms@colorado.edu.