BMT workflow (model.bmt)

The acronym “BMT” refers to a configuration of MESSAGEix-GLOBIOM that combines all 3 of the MESSAGEix-Buildings (B), MESSAGEix-Materials (M), and MESSAGEix-Transport (T) model variants.

In bmt.workflow.generate(), each variant is added as follows:

  • Materials (M) — load a baseline that already includes MESSAGEix-Materials (step M); there is no separate materials build step yet.

  • Transport (T) — build MESSAGEix-Transport on the cloned materials scenario via transport.workflow.add_steps() and transport.build.main(), using the transport section of data/bmt/config.yaml`.

  • Buildings (B) — in step BMT built, call buildings.build.main() (imported in bmt.workflow as build_B) on the MT solved scenario.

  • Other BMT extensions — add power-sector material intensity with bmt.utils.build_PM() (BMTX built); later steps prepare MACRO calibration and solve with MESSAGE-MACRO.

The current module model.bmt includes:

  • bmt.workflow.generate() —generates a Workflow that chains steps to build all 3 variants on a base scenario. See the function documentation for complete details.

  • bmt.cli —the mix-models bmt run CLI subcommand used to invoke the workflow. For example:

    mix-models bmt run --from="base" "BMTX baseline macro reported" --dry-run
    

    See mix-models bmt run --help for options.

  • bmt.config —handling for configuration, which is read from a file data/bmt/config.yaml. See the module documentation for a description of the file format.

Code reference

message_ix_models.model.bmt

Buildings-Materials-Transport workflow.