Source code for mosfit.modules.transforms.transform

"""Definitions for the `Transform` class."""
import numpy as np
from mosfit.modules.module import Module


# Important: Only define one ``Module`` class per file.


[docs]class Transform(Module): """Parent class for transforms.""" def __init__(self, **kwargs): """Initialize module.""" super(Transform, self).__init__(**kwargs) self._wants_dense = True
[docs] def process(self, **kwargs): """Set `dense_*` and `*_since_exp` times/luminosities keys.""" self._times = kwargs['rest_times'] self._rest_t_explosion = kwargs[self.key('resttexplosion')] if 'dense_times' in kwargs: self._dense_times = kwargs['dense_times'] self._dense_luminosities = kwargs[self.key('dense_luminosities')] elif min(self._times) > self._rest_t_explosion: self._dense_times = np.concatenate( ([self._rest_t_explosion], self._times)) self._dense_luminosities = np.concatenate( ([0.0], kwargs[self.key('dense_luminosities')])) self._times_since_exp = self._times - self._rest_t_explosion self._dense_times_since_exp = ( self._dense_times - self._rest_t_explosion) if self._provide_dense: self._times_to_process = self._dense_times_since_exp else: self._times_to_process = self._times_since_exp