Source code for specparam.modes.modes
"""Modes object."""
from specparam.data import ModelModes
from specparam.modes.mode import VALID_COMPONENTS
from specparam.modes.definitions import check_mode_definition
from specparam.reports.strings import gen_modes_str
###################################################################################################
###################################################################################################
[docs]
class Modes():
"""Defines a set of fit modes.
Parameters
----------
aperiodic : str or Mode
Aperiodic mode.
periodic : str or Mode
Periodic mode.
model : SpectralModel, optional
The model object this object is linked to, to provide access to other attributes.
"""
[docs]
def __init__(self, aperiodic, periodic, model=None):
"""Initialize modes."""
# Set list of component names
self.components = VALID_COMPONENTS
# Add mode definitions for each component
self.aperiodic = check_mode_definition(aperiodic, 'aperiodic')
self.periodic = check_mode_definition(periodic, 'periodic')
self.model = model
[docs]
def get_modes(self):
"""Get the modes definition.
Returns
-------
modes_def : ModelModes
Modes definition.
"""
return ModelModes(aperiodic_mode=self.aperiodic.name if self.aperiodic else None,
periodic_mode=self.periodic.name if self.periodic else None)
[docs]
def get_params(self, param_type='list'):
"""Get a description of the parameters, across modes.
Parameters
----------
param_type : {'list', 'dict'}
The output type for the parameters.
Returns
-------
params : dict
Parameter definition for the set of modes.
Each key is a component label.
Each set of values if the parameters, with type specified by 'param_type'.
"""
params = {}
for component in self.components:
params[component] = getattr(self, component).params.labels
if param_type == 'dict':
params = {component : {param : None for param in params[component]} \
for component in params.keys()}
return params
[docs]
def print(self, description=False, concise=False):
"""Print out the current fit modes.
Parameters
----------
description : bool, optional, default: False
Whether to print out a description with current fit modes.
concise : bool, optional, default: False
Whether to print a concise version of the report.
"""
print(gen_modes_str(self, description, concise))