Release History

v0.10.0 (2024-05-31)

This release includes an improved naming convention for the output column names of calculate_bolometric(). Now all full bolometric luminosities have the suffix _bol and all quantities from the MCMC option have the suffix _mcmc. Specifically, the columns that changed are: lumL_bol, dlumdL_bol, L_optL, dtemp0dtemp_mcmc0, dtemp1dtemp_mcmc1, dradius0dradius_mcmc0, and dradius1dradius_mcmc1. The old names will continue to work for now, but please update your code!

  • Add full bolometric luminosity for MCMC option as an output column in calculate_bolometric()

  • LC.copy() now copies all attributes

  • Add option not to label filters in lightcurve_corner() and lightcurve_model_plot()

  • Add optional keyword arguments for plotting in lightcurve_corner() and lightcurve_model_plot()

  • Add optional keyword argument for passing in an instruments dictionary to create_wiserep_tsv()

  • Add ability to manually specify epochs for bolometric light curve calculation

  • Make filenames of bolometric light curve corner plots match the MJD in the output file (median instead of mean)

  • Refactor of plot_bolometric_results() to allow plotting with different markers per source

  • Recognize dates in the filename of the format YYYYMMDD.FFF in readspec()

  • Allow specification of a fixed color in LC.plot() (e.g., color='k')

  • Plot x-errors in LC.plot() when available

  • Print warning messages when legends cannot be added

  • Avoid crash in create_wiserep_tsv() when no observation date is identified and provide option for date format

  • Fix KeyError when using CompanionShocking models without DLT40 photometry

v0.9.0 (2023-06-16)

v0.8.0 (2023-04-27)

This release includes a major refactor of the models module. Models now require initialization with the LC object to be fit. Updated examples are given in the documentation and the Jupyter notebook. This alleviates the need for model keyword arguments, which are now deprecated. (A warning will be issued if the user tries to supply a model_kwargs argument.) This also allows for much easier specification of new models by subclassing the existing models.

  • Add CompanionShocking3 model, which includes viewing angle dependence

  • Added BaseCompanionShocking.t_min() and BaseCompanionShocking.t_max() to indicate when the SiFTO model is computed

  • Require Astropy version 5 (there were already features that required this)

  • Automatically calculate extinction based on \(E(B-V)\) and \(R_V\) if \(A_V\) are not given

  • Automatically parse filters even when LC is initialized without reading (removes need for separate “filt” column)

  • Parse filters in LC.where() (removes need for user to access filtdict)

  • Add options to add auxiliary axes and fancy legends to light curve plots

  • Avoid warnings/NaN when models are evaluated at negative phases

  • Update calculate_bolometric() to use redshift from LC object. A deprecation warning is issued if the z parameter is used, although it will still work for now.

  • Bug fix in ShockCooling3 when \(R_V \ne 3.1\)

  • Read the filter curves on the fly when accessing Filter properties trans, wl_eff, dwl, wl_range, freq_eff, dfreq, or freq_range

  • Finish removing deprecated way of storing supernova properties in Supernova object

  • Allow LC to be written as ECSV, FITS, and HDF5 files by converting Filter to strings

  • Add a few more JWST filters

  • Return the figure object in calibrate_spectra()

  • Fix bug in calibrate_spectra() that reverses the correction when warping

  • Reimplement lightcurve_model_plot() using LC.plot() to get markers, nondetections, offsets, etc.

  • Better matching of filters to SiFTO template (not just by name)

  • Interpolate SiFTO with a cubic spline instead of a line

  • Recognize uprime, gprime, rprime, iprime, and zprime as filter names

  • Allow adjustments to marker size

  • Prevent log(0) warning from lightcurve_model_plot()

  • Automatically plot SiFTO model in dashed lines on lightcurve_model_plot()

  • Add option for logarithmic x-axis in lightcurve_model_plot()

  • Add offset to peak time (in addition to explosion time) in lightcurve_corner()

  • Fix bug in Filter.wl_range() and Filter.freq_range() when filter curve has non-smooth features

  • Move likelihood function to be a method: Model.log_likelihood()

v0.7.0 (2022-10-25)

  • Generalize Filter.blackbody() to Filter.synthesize() and blackbody_mcmc() to spectrum_mcmc()

  • Allow for arbitrary priors in bolometric light curve fitting (see note at v0.5.0)

  • Add ability to plot LC data vs. filter effective wavelength (SED)

  • Add JWST filters

  • Raise an error if the initial parameter guesses are outside the prior

  • Add convenience function for preparing spectra to upload to WISeREP

  • Allow use of LC.findPeak() without Supernova object

  • Fix minor bug in rounding to display a given number of significant figures

  • Minor change to Filter.spectrum() to avoid inadvertently re-sorting transmission tables

  • When calibrating spectra to photometry, assume constant flux in a filter for a configurable amount of time after the last observed point

  • Plot SED over configurable range in spectrum_mcmc()

  • Reoptimize SED corner plot for any number of parameters, and save as PDF instead of PNG

  • Refactor SED corner plots into its own function: spectrum_corner()

v0.6.0 (2022-05-04)

  • Add CompanionShocking2 model: similar to CompanionShocking model but with time shifts on U and i SiFTO tempates instead of the three multipicative factors

  • Separate out the lightcurve_model_plot() function to allow plotting only the observed vs. model light curves (the inset from lightcurve_corner())

  • Add the Filter.spectrum() method to calculate synthetic photometry on an arbitrary spectrum

  • Skip initial state check for post-burn-in MCMC (so it doesn’t crash half way through the fit)

  • Treat the DLT40 filter as r when fitting the SiFTO model

  • Minor changes to plot formatting (remove trailing zeros)

  • Add missing docstring to shock_cooling3()

v0.5.0 (2022-03-16)

For the first time, this release introduces a change that is not backward compatible. To enable the use of Gaussian priors, I have had to make the prior specification a little more complex. Instead of using p_min and p_max to specify the bounds on a uniform prior, users will have to define the shape and bounds on each prior using the priors keyword. This takes a list of Prior objects, e.g., models.UniformPrior, models.LogUniformPrior, or models.GaussianPrior. See the updated example in Model Fitting. For now, the code will still work if you use p_min and p_max, but a warning will be issued to encourage you to switch.

  • Add intrinsic scatter option to bolometric light curve creation

  • Add more MJD digits in bolometric output files

  • Add option to consider other columns when dividing light curves into epochs

  • Recognize spectra stored as FITS tables

  • Don’t crash when plotting ungrouped light curve

  • Allow linewidth/linestyle to be passed as plot_kwargs

  • Recognize marker='none' when plotting a light curve

  • Do not plot black lines for Johnson filters when using plot_lines

  • Allow adjustment of font sizes in light curve corner plots

  • Change priors from functions to classes (see above)

  • Allow for a reddened blackbody SED in models

  • Add ShockCooling3 model: same as ShockCooling but with \(d_L\) and \(E(B-V)\) as free parameters

  • Add option to make sigma an absolute intrinsic scatter

v0.4.0 (2022-02-08)

  • Fix bug in min/max validity times when using intrinsic scatter parameter

  • Change prior on blackbody temperature from log-uniform to uniform

  • Don’t italicize some filter names

  • Return axes objects in light curve corner plot

  • Give option to plot magnitudes in light curve corner plot

  • Fix plotting of wavelength when units are supplied

  • Add option to calculate phase in rest-frame hours

  • Issue warning when filters do not receive extinction correction

  • Switch from to generic filter curves from the SVO Filter Profile Service where possible

  • Add progress bars for MCMC fitting

  • Add option to save chain plots. Burn-in and sampling plots are combined into the same figure.

  • Add option to save chain in bolometric light curve fitting

v0.3.0 (2021-09-22)

  • Switch the default table format from 'ascii.fixed_width' to just 'ascii'

  • Add more recognized column names for light curves

  • Add more recognized filter names, including an “unknown” filter

  • Add option to include intrinsic scatter in model fitting

  • Do not require 'nondet' or 'source' columns

  • Improve handling of units in spectra files

  • Include automatic axis labels and filter legend in light curve plot

  • Make bolometric module compatible with numpy 1.20

  • Allow LC.calcPhase() to function without a Supernova object

  • Allow color curves to be plotted against phase (in addition to MJD)

v0.2.0 (2020-12-08)

  • Recognize several other names for LC columns (e.g., “filter” for “filt”)

  • When binning a light curve, if one point has no uncertainty, ignore only that point

  • Recognize “Swift+UVOT” as a telescope (in addition to “Swift/UVOT”)

  • Recognize the full names of the ATLAS cyan and orange filters

  • Fix bug causing a crash when some photometry points are missing a filter

  • Fix bug in recognizing wavelength unit for spectra when “Angstrom” is spelled out

v0.1.0 (2020-06-25)

Initial release on PyPI.

v0.0.0 (2019-04-14)

Initial release on GitHub and Zenodo.