TemperatureEstimator (xsnap.TemperatureEstimator)#

class TemperatureEstimator(tExplosion=None, norm=None, exponent=None)#

Bases: object

Estimate temperature evolution from a supernova explosion given a set of temperature evolution data or power-law parameters.

If given a set of temperature evolution data, the TemperatureEstimator will fit the data in a power-law model and get the best-fit parameters.

tExplosion#

Supernova time of explosion in MJD.

Type:

float

norm#

Best-fit normalization for the power-law model.

Type:

float

lo_norm_err#

Lower uncertainty of the normalization.

Type:

float

hi_norm_err#

Upper uncertainty of the normalization.

Type:

float

exp#

Best-fit exponent for the power-law model.

Type:

float

lo_exp_err#

Lower uncertainty of the exponent.

Type:

float

hi_exp_err#

Upper uncertainty of the exponent.

Type:

float

chi2_red#

The reduced chi-squared of the fit.

Type:

float

temperatures#

Estimated temperatures wrapped in a DataFrame table with columns ['time_since_explosion', 'lo_time_err', 'hi_time_err', 'temperature', 'lo_temp_err', 'hi_temp_err']

Type:

pandas.DataFrame

__init__(tExplosion=None, norm=None, exponent=None)#

Initialization of the TemperatureEstimator class

Parameters:
  • tExplosion (float, optional) – Supernova time of explosion in MJD. If None, must be set before estimating. Defaults to None.

  • norm (float, optional) – Normalization for the power-law model (if known). Defaults to None.

  • exponent (float, optional) – Exponent for the power-law model (if known). Defaults to None.

clear()#

Reset all fitted parameters and clear the temperature table.

compute_pl_fit(time_since_explosion, temperature, mcmc=True, temp_err_lo=None, temp_err_hi=None, time_err_lo=None, time_err_hi=None, nwalkers=200, nsteps=6000, nburn=1000, show_plots=True)#

Fit a power-law \(T(t) = \mathrm{norm} \times t^{\mathrm{exp}}\) to the data, either via Markov chain Monte-Carlo (MCMC) or simple least-squares (curve_fit()).

Parameters:
  • time_since_explosion (array_like) – Times since explosion in days.

  • temperature (array_like) – Observed/fitted temperatures data.

  • mcmc (bool, optional) – If True, use MCMC. If False, use curve_fit(). Defaults to True.

  • temp_err_lo (array_like, optional) – Lower uncertainty on temperature. Defaults to None.

  • temp_err_hi (array_like, optional) – Upper uncertainty on temperature. Defaults to None.

  • time_err_lo (array_like, optional) – Lower uncertainty on time. Defaults to None.

  • time_err_hi (array_like, optional) – Upper uncertainty on time. Defaults to None.

  • nwalkers (int, optional) – Number of MCMC walkers. Defaults to 200.

  • nsteps (int, optional) – Number of MCMC steps per walker. Defaults to 6000.

  • nburn (int, optional) – Number of burn-in steps to discard. Defaults to 1000.

  • (bool (show_plots) – If True, display fitted and residual plots. Defaults to True.

  • optional – If True, display fitted and residual plots. Defaults to True.

Returns:

selfTemperatureEstimator

The same TemperatureEstimator class with norm, exp, lo_norm_err, hi_norm_err, lo_exp_err, hi_exp_err, and chi2_red all set.

estimate(time_since_explosion=None, t_err_lo=0, t_err_hi=0, file=None, files=None, tExplosion=None)#

Estimate temperature(s) at given time(s) or from FITS file(s) and append to temperatures.

Parameters:
  • time_since_explosion (float or array_like, optional) – Time(s) since explosion in days.

  • t_err_lo (float or array_like, optional) – Lower time error(s). Defaults to 0.

  • t_err_hi (float or array_like, optional) – Upper time error(s). Defaults to 0.

  • file (str, optional) – Single FITS file to read time from.

  • files (list of str, optional) – List of FITS files to read times from.

  • tExplosion (float, optional) – Explosion time (MJD), if not already set.

Returns:

Temperaturespandas.DataFrame

The temperatures table wrapped in DataFrame with columns ['time_since_explosion', 'lo_time_err', 'hi_time_err', 'temperature', 'lo_temp_err', 'hi_temp_err'].

Raises:

RuntimeError – If neither time_since_explosion nor file or files provided, or if model parameters have not been fitted, or if tExplosion is still unset when reading FITS.