Skip to content

Example: Executing NextGen Jobs with Multi BMI Models via DMOD GUI

Robert Bartel edited this page Oct 12, 2023 · 2 revisions

Selecting the Spatial Domain

The model exec workflow GUI menus begin with a map view displaying the hydrofabric and the individual catchments within it. Users must select which catchments are to be included in the executed job.

Initial GUI Map View

Configuring NextGen

The next view in the workflow GUI menus deals with the configuration of NextGen framework model formulations. This begins with the global formulation config, which is applied by default to any catchments in the selected domain that does not have its own specific formulation configuration.

Formulation Type and Name

The first item required is a name value for the formulation, for use within the framework. Next, a selection from the available formulation types must be made.

Selecting formulation type

For this walk-through, we select the MultiBMI formulation type.

Adding 1st Nested BMI Module

Using MultiBMI allows us to combine nested BMI modules to form a composite model formulation for the catchment(s) to which this MultiBMI formulation is applied. We add these individual modules in the Modules subsection.

Clicking on the add module button

This then gives us a nested config menu that essentially works the same way as the outer formulation config menu. Here, for the first module, we will select NoahOWP.

First nested BMI module selection: NoahOWP

Mapping Variables with Different Names

As discussed here, NextGen formulation configs support a variables_names_map parameter. This defines correspondences between different variables, in either the framework or the individual BMI modules, that represent the same value.

Expanding the Variable Names Map

The DMOD model exec GUI populates several of these automatically, though the config can also be manually adjusted if necessary.

Prepopulated variable mappings for NoahOWP

Why Variable Mapping Matters

This mapping is important when configuring BMI formulations, especially multi BMI formulations. One BMI module may not refer to the same actual value (e.g., temperature) using EXACTLY the same name as the framework, or as another BMI module used in the same multi BMI formulation (e.g., SFCTMP versus land_surface_air__temperature).

Adding 2nd Nested BMI Module

With the first nested module added, we will now add a second.

Adding the next nested BMI module

For this formulation, we will build a composite formulation that combines the capabilities of NoahOWP with the CFE module.

Selecting CFE as the 2nd nested Module

Optional: Configuring CFE Parameters

The BMI specification requires modules support an initialization config file, which the module uses to initialize itself via the BMI function of the same name.

However, some OWP-developed modules also support setting these parameters via NextGen's realization config file directly. As a result, supported module params can optionally be configured via the DMOD GUI (though we do not do so in this example).

Configurable CFE Params

Adding N-th Nested BMI Module

This example only added these two BMI modules - NoahOWP and CFE - to create this multi BMI formulation. However, there is not a strict limit on how many modules can be combined, except for what module types are available.

Optional: Adding Catchment-Specific Formulations

We now have a complete formulation config constructed for the global formulation. But recall that this applies to catchments in the selected domain that do not have individual formulation configurations.

If desired, we can now begin adding individual catchment formulation config entries. The config components work the same way as for the global config, except that there is also a field to specify catchment id.

Adding a catchment-specific formulation

Select Time Parameters

The last items to configure are the time parameters for the simulation, including the begin and end of the simulation, as well as the time step size.

Model exec time params