Source code for slsim.Sources.SourceVariability.variability
from slsim.Sources.SourceVariability.light_curve_interpolation import (
LightCurveInterpolation,
)
from slsim.Sources.SourceVariability.sinusoidal_variability import SinusoidalVariability
"""This class aims to have realistic variability models for AGN and supernovae."""
[docs]
class Variability(object):
def __init__(self, variability_model, **kwargs_variability_model):
"""Initialize the variability class.
:param variability_model: keyword for variability model to be used.
:type variability_model: str
:param kwargs_variability_model: Keyword arguments for variability class. For
sinusoidal_variability kwargs are amplitude ('amp') and frequency ('freq').
:type kwargs_variability_model: dict
"""
self.kwargs_model = kwargs_variability_model
self.variability_model = variability_model
if self.variability_model == "sinusoidal":
sinusoidal_class = SinusoidalVariability(**self.kwargs_model)
self._model = sinusoidal_class.magnitude
elif self.variability_model == "light_curve":
light_curve_class = LightCurveInterpolation(light_curve=self.kwargs_model)
self._model = light_curve_class.magnitude
else:
raise ValueError(
"Given model is not supported. Currently supported models are"
"sinusoidal, light_curve."
)
[docs]
def variability_at_time(self, observation_times):
"""Provides variability of a source at given time.
:param observation_times: image observation time
:return: variability at given time.
"""
return self._model(observation_times)