Source code for specparam.params.converter

"""Parameter converter objects."""

###################################################################################################
###################################################################################################

class BaseParamConverter():
    """General class for parameter converters - to be inherited by component specific converter.

    Parameters
    ----------
    component : {'aperiodic', 'periodic'},
        Which component the converter relates to.
    parameter : str
        Label of the parameter the converter is for.
    name : str
        Name of the parameter converter.
    description : str
        Description of the parameter converter.
    function : callable
        Function that implements the parameter conversion.
    """

    def __init__(self, component, parameter, name, description, function):
        """Initialize a parameter converter."""

        self.component = component
        self.parameter = parameter
        self.name = name
        self.description = description
        self.function = function


[docs] class AperiodicParamConverter(BaseParamConverter): """Parameter converter for aperiodic parameters."""
[docs] def __init__(self, parameter, name, description, function): """Initialize an aperiodic parameter converter.""" super().__init__('aperiodic', parameter, name, description, function)
def __call__(self, fit_value, model): """Call the aperiodic parameter converter. Parameters ---------- fit_value : float Fit value for the parameter. model : SpectralModel Model object. """ return self.function(fit_value, model)
[docs] class PeriodicParamConverter(BaseParamConverter): """Parameter converter for periodic parameters."""
[docs] def __init__(self, parameter, name, description, function): """Initialize a periodic parameter converter.""" super().__init__('periodic', parameter, name, description, function)
def __call__(self, fit_value, model, peak_ind): """Call the peak parameter converter. Parameters ---------- fit_value : float Fit value for the parameter. model : SpectralModel Model object. peak_ind : int Index of the current peak. """ return self.function(fit_value, model, peak_ind)