avaframe/AvaFrame

View on GitHub
avaframe/com6RockAvalanche/com6RockAvalanche.py

Summary

Maintainability
A
50 mins
Test Coverage
F
54%
"""
    Rock avalanche overrides for com1DFA
"""

# Load modules
import logging


# Local imports
from avaframe.in3Utils import cfgUtils
from avaframe.in3Utils import cfgHandling
from avaframe.com1DFA import com1DFA

# create local logger
# change log level in calling module to DEBUG to see log messages
log = logging.getLogger(__name__)


def runRockAvalanche(cfgMain, rockAvalancheCfg):
    """Run and adjust parameters to match rock avalanche settings for com1DFA run,
    result files, reports and plots are saved analog to a standard com1DFA model run

    Parameters
    -----------
    cfgMain: configparser object
        main AvaFrame settings
    rockAvalancheCfg: configparser object
        configuration settings for rock avalanche including com1DFA override parameters

    """

    # ++++++++++ set configurations for com1DFA and override ++++++++++++
    # get comDFA configuration and update with snow slide parameter set
    com1DFACfg = cfgUtils.getModuleConfig(
        com1DFA,
        fileOverride="",
        modInfo=False,
        toPrint=False,
        onlyDefault=rockAvalancheCfg["com1DFA_com1DFA_override"].getboolean("defaultConfig"),
    )
    com1DFACfg, rockAvalancheCfg = cfgHandling.applyCfgOverride(
        com1DFACfg, rockAvalancheCfg, com1DFA, addModValues=False
    )

    # run the com1DFA module with rockAvalanche settings
    dem, plotDict, reportDictList, simDF = com1DFA.com1DFAMain(cfgMain, cfgInfo=com1DFACfg)

    # print info about simulation performed to log
    log.info("Com1DFA run performed with rockAvalanche settings")

    return dem, plotDict, reportDictList, simDF