-
Notifications
You must be signed in to change notification settings - Fork 63
BMI Python
Python integration is controlled with the CMake build flag NGEN_WITH_PYTHON
, however this currently defaults to "On"--you would need to turn this off if Python is not available in your environment. See the Dependencies documentation for specifics on Python requirements, but in summary you will need a working Python environment with NumPy installed. You can set up a Python environment anywhere with the usual environment variables. The appropriate Python environment should be active in the shell when ngen is run.
For Python BMI models specifically, you will also need to install the bmipy package, which provides a base class for Python BMI models.
To use a Python BMI model, the model needs to be installed as a package in the Python environment and the package must have a class that extends bmipy, like so
from bmipy import Bmi
class bmi_model(Bmi):
...
TIP: If you are actively developing a Python BMI model, you may want to install your package with the -e
flag.
As noted above, Python modules require the package and class name to be specified in the realization config via the python_class
key, such as:
{
"global": {
"formulations": [
{
"name": "bmi_python",
"params": {
"python_type": "mypackage.bmi_model",
"model_type_name": "bmi_model",
//...
An example implementation for an appropriate BMI model as a Python class is provided in the project, or you can examine the CSDMS-provided example Python model.
Tutorial
Getting Started
Configuration
Technical References