BMI-based tools: babelizer and pymt

A model that provides the BMI functions can be converted to a plug-and-play component that runs in the CSDMS Python Modeling Toolkit (pymt). This conversion process can be done automatically with the CSDMS Babelizer, which generates a Python package from models written in C, C++, Fortran, and Python. Some additional metadata is required, describing such things as:

  • the model author(s), license, description, web page, etc.
  • how the model is built and how it can be linked
  • template input files
  • description of input parameters (description, units, ranges, etc.)

Within pymt, a component automatically gains many new capabilities. This includes the ability to be coupled to other models even if their programming language, variable names, variable units, time-stepping scheme or computational grid is different. It also gains:

  • the ability to write output variables to standardized NetCDF files,
  • unit conversion tools,
  • time interpolation,
  • all the data analysis and visualization tools available in Python,
  • the ability to run in a Jupyter Notebook

If you have a model with a BMI, and would like to componentize it and add it to pymt, please contact us through the CSDMS Help Desk. We’d be happy (and excited) to help!