Source code for redback.transient.supernova

import numpy as np
from typing import Union

import redback.get_data.directory
from redback.transient.transient import OpticalTransient


[docs]class Supernova(OpticalTransient): DATA_MODES = ['flux', 'flux_density', 'magnitude', 'luminosity']
[docs] def __init__( self, name: str, data_mode: str = 'magnitude', time: np.ndarray = None, time_err: np.ndarray = None, time_mjd: np.ndarray = None, time_mjd_err: np.ndarray = None, time_rest_frame: np.ndarray = None, time_rest_frame_err: np.ndarray = None, Lum50: np.ndarray = None, Lum50_err: np.ndarray = None, flux_density: np.ndarray = None, flux_density_err: np.ndarray = None, magnitude: np.ndarray = None, magnitude_err: np.ndarray = None, redshift: float = np.nan, photon_index: float = np.nan, bands: np.ndarray = None, system: np.ndarray = None, active_bands: Union[np.ndarray, str] = 'all', use_phase_model: bool = False, optical_data:bool = True, **kwargs: None) -> None: """ This is a general constructor for the Supernova class. Note that you only need to give data corresponding to the data mode you are using. For luminosity data provide times in the rest frame, if using a phase model provide time in MJD, else use the default time (observer frame). :param name: Name of the transient. :type name: str :param data_mode: Data mode. Must be one from `Afterglow.DATA_MODES`. :type data_mode: str, optional :param time: Times in the observer frame. :type time: np.ndarray, optional :param time_err: Time errors in the observer frame. :type time_err: np.ndarray, optional :param time_mjd: Times in MJD. Used if using phase model. :type time_mjd: np.ndarray, optional :param time_mjd_err: Time errors in MJD. Used if using phase model. :type time_mjd_err: np.ndarray, optional :param time_rest_frame: Times in the rest frame. Used for luminosity data. :type time_rest_frame: np.ndarray, optional :param time_rest_frame_err: Time errors in the rest frame. Used for luminosity data. :type time_rest_frame_err: np.ndarray, optional :param Lum50: Luminosity values. :type Lum50: np.ndarray, optional :param Lum50_err: Luminosity error values. :type Lum50_err: np.ndarray, optional :param flux: Flux values. :type flux: np.ndarray, optional :type flux_err: np.ndarray, optional :param flux_err: Flux error values. :param flux_density: Flux density values. :type flux_density: np.ndarray, optional :param flux_density_err: Flux density error values. :type flux_density_err: np.ndarray, optional :param magnitude: Magnitude values for photometry data. :type magnitude: np.ndarray, optional :param magnitude_err: Magnitude error values for photometry data. :type magnitude_err: np.ndarray, optional :param redshift: Redshift value. Will be read from the metadata table if not given. :type redshift: float :param photon_index: Photon index value. Will be read from the metadata table if not given. :type photon_index: float :param optical_data: Whether we are fitting optical data, useful for plotting. :type optical_data: bool, optional :param use_phase_model: Whether we are using a phase model. :type use_phase_model: bool :param frequency: Array of band frequencies in photometry data. :type frequency: np.ndarray, optional :param system: System values. :type system: np.ndarray, optional :param bands: Band values. :type bands: np.ndarray, optional :param active_bands: List or array of active bands to be used in the analysis. Use all available bands if 'all' is given. :type active_bands: Union[list, np.ndarray] :param kwargs: Additional callables: bands_to_frequency: Conversion function to convert a list of bands to frequencies. Use redback.utils.bands_to_frequency if not given. :type kwargs: None """ super().__init__(time=time, time_err=time_err, time_rest_frame=time_rest_frame, time_mjd=time_mjd, time_mjd_err=time_mjd_err, time_rest_frame_err=time_rest_frame_err, Lum50=Lum50, Lum50_err=Lum50_err, flux_density=flux_density, flux_density_err=flux_density_err, magnitude=magnitude, magnitude_err=magnitude_err, data_mode=data_mode, name=name, use_phase_model=use_phase_model, bands=bands, system=system, active_bands=active_bands, redshift=redshift, photon_index=photon_index, **kwargs) self.directory_structure = redback.get_data.directory.open_access_directory_structure( transient=name, transient_type="supernova") self._set_data()