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!