Skip to content

gcages.scm_running.magicc#

General tools for running MAGICC

Functions:

Name Description
combine_probabilistic_and_common_cfg

Combine probabilistic and common configs to make a full set of run configs

load_magicc_probabilistic_config

Load MAGICC configuration from a probabilistic config file

combine_probabilistic_and_common_cfg #

combine_probabilistic_and_common_cfg(
    probabilistic_cfgs: list[dict[str, Any]],
    common_cfg: dict[str, Any],
) -> list[dict[str, Any]]

Combine probabilistic and common configs to make a full set of run configs

Parameters:

Name Type Description Default
probabilistic_cfgs list[dict[str, Any]]

Probabilistic configs, loaded from e.g. load_magicc_probabilistic_config

required
common_cfg dict[str, Any]

Common configuration to apply to all runs

required

Returns:

Type Description
list[dict[str, Any]]

Run configuration i.e. the combination of probabilistic_cfgs and common_cfg

Source code in src/gcages/scm_running/magicc.py
def combine_probabilistic_and_common_cfg(
    probabilistic_cfgs: list[dict[str, Any]], common_cfg: dict[str, Any]
) -> list[dict[str, Any]]:
    """
    Combine probabilistic and common configs to make a full set of run configs

    Parameters
    ----------
    probabilistic_cfgs
        Probabilistic configs, loaded from e.g. [load_magicc_probabilistic_config][(m).]

    common_cfg
        Common configuration to apply to all runs

    Returns
    -------
    :
        Run configuration i.e. the combination of `probabilistic_cfgs` and `common_cfg`
    """
    run_config = [{**common_cfg, **prob_cfg} for prob_cfg in probabilistic_cfgs]

    return run_config

load_magicc_probabilistic_config #

load_magicc_probabilistic_config(
    config_file: Path,
) -> list[dict[str, Any]]

Load MAGICC configuration from a probabilistic config file

Parameters#

config_file Config file to load

Returns#

: MAGICC configurations to use when running MAGICC

Source code in src/gcages/scm_running/magicc.py
def load_magicc_probabilistic_config(config_file: Path) -> list[dict[str, Any]]:
    """
    Load MAGICC configuration from a probabilistic config file

    Parameters
    ----------
    config_file
        Config file to load

    Returns
    -------
    :
        MAGICC configurations to use when running MAGICC
    """
    with open(config_file) as fh:
        cfgs_raw = json.load(fh)

    cfgs = [
        {
            "run_id": c["paraset_id"],
            **{k.lower(): v for k, v in c["nml_allcfgs"].items()},
        }
        for c in cfgs_raw["configurations"]
    ]

    return cfgs